针对WooCommerce中的电子邮件ID的特定电子邮件通知



我在WooCommerce中设置了自定义状态和自定义电子邮件。我想使用当前电子邮件WC_Email,而不是当前状态作为电子邮件模板内部的变量。

我需要在电子邮件模板中有一些if语句。我没有使用订单状态来确保订单中的电子邮件是否会手动获得不满,它不会通过单独的电子邮件发送当前订单状态的数据。

我如何在WooCommerce中回声WC_Email电子邮件ID作为变量?

wooCommerce中不存在wc_order_email类或函数,因此我更新了您的问题。

您正在查看的是$email变量参数 WC_Email 当前类型对象)。它主要是在模板和钩子中到处定义的。

要将可用的当前电子邮件ID作为变量,您只需使用$email_id = $email->id

要获取自定义电子邮件的当前电子邮件ID,您应该使用此代码(仅适用于 testing

add_action( 'woocommerce_email_order_details', 'get_the_wc_email_id', 9, 4 );
function get_the_wc_email_id( $order, $sent_to_admin, $plain_text, $email ) {
    // Will output the email id for the current notification
    echo '<pre>'; print_r($email->id); echo '</pre>'; 
}

代码在您的活动子主题(或主题)的function.php文件中或任何插件文件中。

您将获得以下内容之一:

  1. 用于WooCommerce默认通知:

    • new_order
    • customer_on_hold_order
    • customer_processing_order
    • customer_completed_order
    • customer_refunded_order
    • customer_partially_refunded_order
    • cancelled_order
    • failed_order
    • customer_reset_password
    • customer_invoice
    • customer_new_account
    • customer_note
    • low_stock
    • no_stock
  2. 用于WooCommerce订阅:

    • new_renewal_order
    • new_switch_order
    • customer_processing_renewal_order
    • customer_completed_renewal_order
    • customer_on_hold_renewal_order
    • customer_completed_switch_order
    • customer_renewal_invoice
    • cancelled_subscription
    • expired_subscription
    • suspended_subscription
  3. 用于WooCommerce预订:

    • new_booking
    • booking_reminder
    • booking_confirmed
    • booking_pending_confirmation
    • booking_notification
    • booking_cancelled
    • admin_booking_cancelled
  4. 对于WooCommerce会员资格:

    • WC_Memberships_User_Membership_Note_Email
    • WC_Memberships_User_Membership_Ending_Soon_Email
    • WC_Memberships_User_Membership_Ended_Email
    • WC_Memberships_User_Membership_Renewal_Reminder_Email
    • WC_Memberships_User_Membership_Activated_Email

获得正确的电子邮件ID slug 为您的自定义电子邮件通知,您可以在任何以下挂钩上使用它(而不是覆盖电子邮件模板)

  • woocommerce_email_header (2个参数:$email_heading$email
  • woocommerce_email_order_details (4个参数:$order$sent_to_admin$plain_text$email

  • woocommerce_email_order_meta (4个参数:$order$sent_to_admin$plain_text$email
  • woocommerce_email_customer_details (4个参数:$order$sent_to_admin$plain_text$email
  • woocommerce_email_footer (1参数:$email

在这里代码的示例我定位"新订单"。仅电子邮件通知:

add_action( 'woocommerce_email_order_details', 'add_custom_text_to_new_order_email', 10, 4 );
function add_custom_text_to_new_order_email( $order, $sent_to_admin, $plain_text, $email ) {
    // Only for "New Order"  email notifications (to be replaced by yours)
    if( ! ( 'new_order' == $email->id ) ) return;
    // Display a custom text (for example)
    echo '<p>'.__('My custom text').'</p>';
}

代码在您的子主题的functions.php文件中(或插件)

相关内容

  • 没有找到相关文章

最新更新