概要
woocommerce_cart_loaded_from_session
は、WooCommerceのカートがセッションから読み込まれる際に発火するアクションフックです。このフックを使用することで、カートが読み込まれた後に特定の処理を実行することができます。一般的に、このアクションは次のような機能を実装する際によく使われます:
- カート内のアイテムのカスタムフィルタリング
- ユーザーのロールや権限に基づいた商品表示の調整
- カート更新時のクーポンコードの適用
- 商品の在庫状態のチェック
- 特定の商品に対するアラートの表示
- カートに追加された際のトラッキングコードの実行
構文
add_action( 'woocommerce_cart_loaded_from_session', 'your_custom_function' );
パラメータ
このアクションには特定のパラメータはありません。
戻り値
このアクションは特に戻り値を持ちません。単に指定した関数を実行します。
使用可能なプラグインおよびバージョン
- WooCommerce: バージョン5.0以降
- WordPress: バージョン5.0以降
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | |
pre_get_posts | |
wp | |
template_redirect | |
get_header | |
wp_head |
サンプルコード
サンプルコード1
add_action( 'woocommerce_cart_loaded_from_session', 'custom_adjust_cart_items' );
function custom_adjust_cart_items() {
foreach( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
// 商品に応じて特定の操作を実行
if( isset($cart_item['product_id']) && $cart_item['product_id'] === 123 ) {
// 商品ID 123 の特別な処理
}
}
}
このコードは、カートがセッションから読み込まれるたびに、商品IDが123のアイテムに特別な処理を追加するものです。
サンプルコード2
add_action( 'woocommerce_cart_loaded_from_session', 'custom_check_coupon_code' );
function custom_check_coupon_code() {
if ( isset( $_POST['coupon_code'] ) ) {
WC()->cart->apply_coupon( sanitize_text_field( $_POST['coupon_code'] ) );
}
}
このコードは、カートが読み込まれた際に、クーポンコードが送信されていればそれを適用する機能です。
サンプルコード3
add_action( 'woocommerce_cart_loaded_from_session', 'custom_alert_product_stock' );
function custom_alert_product_stock() {
foreach( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
$product = wc_get_product( $cart_item['product_id'] );
if( !$product->is_in_stock() ) {
wc_add_notice( __('この商品は在庫切れです', 'your-textdomain'), 'error' );
}
}
}
このコードは、カート内の商品が在庫切れの場合にエラーメッセージを表示します。
サンプルコード4
add_action( 'woocommerce_cart_loaded_from_session', 'custom_cart_tracked' );
function custom_cart_tracked() {
// トラッキングコードを含むスクリプトを追加
echo "<script>console.log('カートが読み込まれました');</script>";
}
このコードは、カートがセッションから読み込まれる際に、コンソールにメッセージを表示するスクリプトを追加します。
サンプルコード5
add_action( 'woocommerce_cart_loaded_from_session', 'custom_discount_on_product' );
function custom_discount_on_product() {
$discounted_product_id = 456; // 割引対象商品ID
foreach( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
if( $cart_item['product_id'] == $discounted_product_id ) {
$discount = 10; // 10%の割引
WC()->cart->cart_contents[$cart_item_key]['data']->set_price( $cart_item['data']->get_price() * ( 1 - $discount / 100 ) );
}
}
}
このコードは、特定の商品に対して10%の割引を適用します。カートがセッションから読み込まれた際に実行されます。