概要
woocommerce_copy_email_template
フィルタは、WooCommerceがメールテンプレートのコピーを行う際に使用されるフックです。主に以下の機能を実装する際に利用されます。
- メールテンプレートの変更。
- 特定条件に基づいたカスタマイズしたメールの送信。
- メールに含まれる情報の調整。
- テンプレートの位置や名前の変更。
- 特定のユーザーに対するメールのカスタマイズ。
- メールのフォーマット変更(HTMLやテキスト形式)。
構文:
add_filter('woocommerce_copy_email_template', 'custom_copy_email_template', 10, 3);
パラメータ:
– $email
:コピーする元のメールテンプレートの情報。
– $order
:対象の注文オブジェクト。
– $email_type
:メールのタイプ(例:新規注文、完了注文など)。
戻り値:
メールテンプレートの新しいパス。
使用可能なプラグイン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_copy_email_template', 'change_email_template_path', 10, 3);
function change_email_template_path($email, $order, $email_type) {
if ($email_type == 'customer_completed_order') {
$email = 'path/to/custom/template.php';
}
return $email;
}
引用元: https://woocommerce.com/
サンプルコード2: 送信するメールの内容をカスタマイズする
このコードは、特定のメールに対して送信内容を変更します。
add_filter('woocommerce_copy_email_template', 'customize_email_content', 10, 3);
function customize_email_content($email, $order, $email_type) {
if ($email_type == 'customer_invoice') {
// Add custom content logic here.
$order->add_order_note('Custom note added for email.');
}
return $email;
}
引用元: https://woocommerce.com/
サンプルコード3: 新しいメールテンプレートを使用する
このコードは、新たに追加したメールテンプレートを使用するためのものです。
add_filter('woocommerce_copy_email_template', 'use_new_email_template', 10, 3);
function use_new_email_template($email, $order, $email_type) {
if ($email_type === 'customer_new_account') {
return 'path/to/new/account/template.php';
}
return $email;
}
引用元: https://woocommerce.com/
サンプルコード4: 添付ファイルの追加
このコードは、メールに特定のファイルを添付する機能を持っています。
add_filter('woocommerce_copy_email_template', 'add_attachment_to_email', 10, 3);
function add_attachment_to_email($email, $order, $email_type) {
if ($email_type === 'customer_completed_order') {
$attachments[] = 'path/to/attachment.pdf';
add_filter('woocommerce_email_attachments', function($attachments) use ($attachments) {
return array_merge($attachments, $attachments);
});
}
return $email;
}
引用元: https://woocommerce.com/
サンプルコード5: メールのフォーマット変更
このコードは、特定のメールのフォーマットを変更します。
add_filter('woocommerce_copy_email_template', 'change_email_format', 10, 3);
function change_email_format($email, $order, $email_type) {
if ($email_type == 'customer_refunded_order') {
$email = 'path/to/refunded/order/template.php';
// Logic to adjust formatting here.
}
return $email;
}
引用元: https://woocommerce.com/