概要
woocommerce_mail_content
フィルタは、WooCommerceで送信されるメールのコンテンツを変更するために使用されます。このフックを使用すると、メールの内容をカスタマイズしたり、追加の情報を挿入したりできます。主に以下のような用途で使用されることが多いです。
- メールテンプレートのカスタマイズ
- 特定の条件下での通知文の追加
- 商品の詳細情報の挿入
- クーポン情報の追加
- お礼やメッセージのカスタマイズ
- HTML形式のメール内容に変更を加える
構文
add_filter('woocommerce_mail_content', 'your_custom_function', 10, 2);
パラメータ
$content
(string): 変更前のメールの内容$order
(WC_Order): 関連するWooCommerceの注文オブジェクト
戻り値
- string: 変更されたメールの内容
使用可能なバージョン
- WooCommerce: 3.0 以上
- 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_filter('woocommerce_mail_content', 'add_custom_message_to_email', 10, 2);
function add_custom_message_to_email($content, $order) {
$custom_message = '<p>Thank you for your purchase!</p>';
return $content . $custom_message;
}
このコードは、メールの内容の末尾に「Thank you for your purchase!」というメッセージを追加します。
サンプルコード 2: 特定の条件でお知らせを追加
add_filter('woocommerce_mail_content', 'add_special_offer_to_email', 10, 2);
function add_special_offer_to_email($content, $order) {
if ($order->get_total() > 100) {
$offer_message = '<p>Special offer: Get 10% off your next purchase!</p>';
return $content . $offer_message;
}
return $content;
}
このコードは、合計金額が100ドルを超えた場合に特別オファーのメッセージを追加します。
サンプルコード 3: 商品情報の挿入
add_filter('woocommerce_mail_content', 'insert_product_details_to_email', 10, 2);
function insert_product_details_to_email($content, $order) {
$items = $order->get_items();
$item_details = '<h2>Your Products:</h2><ul>';
foreach ($items as $item) {
$item_details .= '<li>' . $item->get_name() . ' - ' . $item->get_total() . '</li>';
}
$item_details .= '</ul>';
return $content . $item_details;
}
このコードは、注文した商品の詳細をメールに追加します。
サンプルコード 4: HTML形式のメールに変更
add_filter('woocommerce_mail_content', 'change_email_to_html', 10, 2);
function change_email_to_html($content, $order) {
return nl2br($content); // 改行をHTMLの< br >タグに変換
}
このコードは、メールの内容の改行をHTML形式に変換します。
サンプルコード 5: 着信後のメッセージを変更
add_filter('woocommerce_mail_content', 'modify_order_received_message', 10, 2);
function modify_order_received_message($content, $order) {
return str_replace('Order received', 'Your order has been placed successfully!', $content);
}
このコードは、「Order received」というメッセージを「Your order has been placed successfully!」に変更します。