概要
woocommerce_cart_item_restored
アクションは、WooCommerceにおいて商品がカートに復元された際にトリガーされるフックです。このアクションは、一般的に以下のような機能を実装するために使用されます:
- カート復元のログ記録
- ユーザーへの通知の送信
- ステータス変更のトラッキング
- カスタム統計の更新
- サードパーティとのAPI連携
- 特定の条件でのプロモーション管理
構文
do_action( 'woocommerce_cart_item_restored', $cart_item_key, $cart_item, $cart );
パラメータ
$cart_item_key
: カートアイテムのキー(文字列)$cart_item
: 復元されたカートアイテムのデータ(配列)$cart
: 現在のカートインスタンス(WC_Cartオブジェクト)
戻り値
このアクションには戻り値はありません。
利用可能なバージョン
- WooCommerce: バージョン 2.4 以降
- WordPress: バージョン 4.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_item_restored', 'log_cart_item_restored', 10, 3);
function log_cart_item_restored($cart_item_key, $cart_item, $cart) {
error_log('Item restored: ' . $cart_item['data']->get_name());
}
サンプルコード 2: ユーザーへの通知送信
このコードは、商品がカートに復元されたときに、サイト管理者にメール通知を送ります。
add_action('woocommerce_cart_item_restored', 'notify_admin_on_item_restored', 10, 3);
function notify_admin_on_item_restored($cart_item_key, $cart_item, $cart) {
$admin_email = get_option('admin_email');
wp_mail($admin_email, 'カートアイテムが復元されました', '商品名: ' . $cart_item['data']->get_name());
}
サンプルコード 3: ステータス変更のトラッキング
このサンプルは、商品の復元時に特定のカスタムフィールドを更新します。
add_action('woocommerce_cart_item_restored', 'track_item_status_change', 10, 3);
function track_item_status_change($cart_item_key, $cart_item, $cart) {
update_post_meta($cart_item['product_id'], '_item_status', 'restored');
}
サンプルコード 4: プロモーション管理
このサンプルコードは、復元されたカートアイテムに対してプロモーションを適用します。
add_action('woocommerce_cart_item_restored', 'apply_discount_on_restored_item', 10, 3);
function apply_discount_on_restored_item($cart_item_key, $cart_item, $cart) {
$product = $cart_item['data'];
if ($product->get_id() === 123) { // 商品IDが123の場合
$cart->add_fee('割引', -5); // 5ドルの割引を適用
}
}
サンプルコード 5: サードパーティAPIとの連携
このサンプルは、商品が復元された時に外部APIへリクエストを送信します。
add_action('woocommerce_cart_item_restored', 'send_data_to_external_api', 10, 3);
function send_data_to_external_api($cart_item_key, $cart_item, $cart) {
$response = wp_remote_post('https://example.com/api/data', array(
'body' => json_encode(array(
'product_name' => $cart_item['data']->get_name(),
'item_key' => $cart_item_key
)),
'headers' => array('Content-Type' => 'application/json')
));
}
以上が、woocommerce_cart_item_restored
アクションに関する概要とサンプルコードです。