概要
woocommerce_thankyou
は、WooCommerceにおける重要なアクションフックの一つです。このアクションは、購入後のサンキューページが表示される際に実行されます。具体的には、購入が完了した後に、顧客への感謝のメッセージやフォローアップメッセージを表示するために使用されることが多いです。以下のような機能を実装する際に役立ちます。
- 購入完了後のカスタムメッセージの表示
- 顧客の購入履歴を元にしたクロスセリング商品提案
- 購入後のアンケートやフィードバックの収集
- メール通知やサンクスメールの送信
- SNSシェアボタンの表示
- カスタムトラッキングコードの埋め込み
構文
add_action('woocommerce_thankyou', 'your_function_name', 10, 1);
パラメータ
$order_id
(int): 完了した注文のID。
戻り値
このアクション自体は値を返しません。副作用としてサンキューページに対して何らかの処理が行われます。
WooCommerceとWordPressのバージョン
- WooCommerceバージョン: 3.0.0以降
- WordPressバージョン: 4.0以降
サンプルコード
サンプルコード1: 購入完了メッセージのカスタマイズ
add_action('woocommerce_thankyou', 'custom_thank_you_message', 10, 1);
function custom_thank_you_message($order_id) {
echo '<p>ご購入いただきありがとうございます!ご注文が正常に処理されました。</p>';
}
このコードは、購入完了後のサンキューページにカスタムメッセージを表示します。
サンプルコード2: クロスセリング商品の表示
add_action('woocommerce_thankyou', 'display_cross_sells', 10, 1);
function display_cross_sells($order_id) {
$order = wc_get_order($order_id);
echo '<h2>おすすめ商品</h2>';
foreach ($order->get_items() as $item_id => $item) {
$product_id = $item->get_product_id();
$cross_sells = array(); // ここにクロスセリング商品のIDを追加
foreach ($cross_sells as $cross_sell) {
echo '<p>' . get_the_title($cross_sell) . '</p>';
}
}
}
このコードは、購入後にクロスセリング商品を表示するためのサンプルです。
サンプルコード3: フィードバックフォームの表示
add_action('woocommerce_thankyou', 'feedback_form', 10, 1);
function feedback_form($order_id) {
echo '<form method="post"><label for="feedback">フィードバックをお書きください:</label><textarea name="feedback" id="feedback"></textarea><input type="submit" value="送信"></form>';
}
このコードは、サンキューページにフィードバックフォームを表示します。
サンプルコード4: サンクスメールの送信
add_action('woocommerce_thankyou', 'send_thank_you_email', 10, 1);
function send_thank_you_email($order_id) {
$order = wc_get_order($order_id);
// メール送信ロジック
wp_mail($order->get_billing_email(), 'ご購入ありがとうございます!', '注文が完了しました。');
}
このコードは、購入の完了時にサンクスメールを送信するロジックです。
サンプルコード5: SNSシェアボタンの追加
add_action('woocommerce_thankyou', 'add_social_share_buttons', 10, 1);
function add_social_share_buttons($order_id) {
echo '<a href="https://twitter.com/share?url=' . get_permalink($order_id) . '">Twitterでシェア</a>';
echo '<a href="https://www.facebook.com/sharer/sharer.php?u=' . get_permalink($order_id) . '">Facebookでシェア</a>';
}
このコードは、サンキューページにSNSシェアボタンを追加します。
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
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 |