概要
woocommerce_email_attachments
フィルタは、WooCommerceが送信するメールに添付ファイルを追加するために使用されるWordPressのフックです。このフィルタを利用することで、特定の条件に基づいて、顧客や管理者に送信されるメールに添付ファイルを動的に追加することができます。一般的に以下のようなシチュエーションで利用されます:
- 注文確認メールに請求書を添付する。
- 出荷通知メールに追跡情報を含めたPDFを送付する。
- 顧客の誕生日に特別な割引クーポンを添付する。
- サブスクリプションメールに最新の製品カタログを追加する。
- 特定のプロモーションに応じた資料を追加する。
- メールの内容によって異なるファイルを添付する。
構文
add_filter('woocommerce_email_attachments', 'your_function_name', 10, 3);
パラメータ
$attachments
(array): 追加するファイルのパスを含む配列。$email_id
(string): 処理中のメールのID。$object
(object): メールに関連するオブジェクト(例:オーダーオブジェクト)。
戻り値
- array: 添付ファイルのパスを含む配列を返す。
使用可能なプラグインのバージョン
- WooCommerce: 3.0以上
- WordPress: 4.4以上
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
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_email_attachments', 'add_invoice_to_order_email', 10, 3);
function add_invoice_to_order_email($attachments, $email_id, $order) {
if ($email_id === 'customer_completed_order') {
$invoice_path = '/path/to/invoice.pdf'; // 請求書のパス
$attachments[] = $invoice_path; // 添付
}
return $attachments;
}
// 引用元: https://www.businessbloomer.com/woocommerce-add-attachments-emails/
このサンプルコードは、注文が完了した際の顧客向けメールに請求書PDFを添付します。
サンプル2: 出荷通知メールに追跡情報を添付
add_filter('woocommerce_email_attachments', 'add_tracking_info_to_shipping_email', 10, 3);
function add_tracking_info_to_shipping_email($attachments, $email_id, $order) {
if ($email_id === 'customer_shipped_order') {
$tracking_info_path = '/path/to/tracking_info.pdf'; // 追跡情報のパス
$attachments[] = $tracking_info_path; // 添付
}
return $attachments;
}
// 引用元: https://woocommerce.com/document/woocommerce-emails/
このコードは出荷通知のメールに追跡情報を含むPDFを追加します。
サンプル3: 顧客の誕生日にクーポンを添付
add_filter('woocommerce_email_attachments', 'add_coupon_to_birthday_email', 10, 3);
function add_coupon_to_birthday_email($attachments, $email_id, $customer) {
if ($email_id === 'customer_birthday_email') {
$coupon_path = '/path/to/coupon.pdf'; // 割引クーポンのパス
$attachments[] = $coupon_path; // 添付
}
return $attachments;
}
// 引用元: https://developer.woocommerce.com/
このサンプルでは、特定の顧客の誕生日に送りたいクーポンを添付します。
サンプル4: プロモーションに基づいて資料を追加する
add_filter('woocommerce_email_attachments', 'add_promo_material', 10, 3);
function add_promo_material($attachments, $email_id, $order) {
if ($email_id === 'customer_promotional_email') {
$promo_material_path = '/path/to/promo.pdf'; // プロモーション資料のパス
$attachments[] = $promo_material_path; // 添付
}
return $attachments;
}
// 引用元: https://www.digitaldarts.com.au/
このコードは、プロモーションメールに関連する資料を追加します。
サンプル5: 注文内容に応じて異なるファイルを添付
add_filter('woocommerce_email_attachments', 'conditional_attachment_based_on_order', 10, 3);
function conditional_attachment_based_on_order($attachments, $email_id, $order) {
if ($email_id === 'customer_completed_order') {
$items = $order->get_items();
foreach ($items as $item) {
if ($item->get_product_id() == 123) { // 特定の製品ID
$attachments[] = '/path/to/special_attachment.pdf';
break;
}
}
}
return $attachments;
}
// 引用元: https://www.wpexplorer.com/
このサンプルコードは、特定の商品が注文された場合にのみ、特別なファイルを添付します。