【发布时间】:2020-08-21 17:29:38
【问题描述】:
我正在尝试连接到“woocommerce_email_recipient_booking_confirmed”以更新/添加到收件人字段。下面的链接非常适用于默认的 WooCommerce 电子邮件(及其操作)。如果我在操作中手动输入电子邮件,则该操作有效,但我需要来自客户输入的电子邮件(通过产品页面上的自定义字段)。
我相信这与 class-wc-email-booking-confirmed.php 有关。当我将它与 class-wc-email-customer-completed-order.php 进行比较时
class-wc-email-booking-confirmed.php
public function trigger( $booking_id )
class-wc-email-customer-completed-order.php
public function trigger( $order_id, $order = false )
我的代码(我没有从下面的资源中更改):
add_filter( 'woocommerce_email_recipient_booking_confirmed', 'additional_customer_email_recipient', 9999, 2 ); // Completed Order
function additional_customer_email_recipient( $recipient, $order ) {
if ( ! is_a( $order, 'WC_Order' ) ) return $recipient; // when I comment this out, an ajax error is thrown. This is why I believe the order object directly accessible yet.
$additional_recipients = array(); // Initializing…
foreach( $order->get_items() as $item_id => $item_data ){
$email = wc_get_order_item_meta( $item_id, 'Email Address', true );
if( ! in_array( $email, $additional_recipients ) && strpos( $recipient, $email ) === false )
$additional_recipients[] = $email;
}
$additional_recipients = implode( ',', $additional_recipients);
if( count($additional_recipients) > 0)
{
$recipient = ','.$additional_recipients;
}
return $recipient;
}
Send Woocommerce Order to email address listed on product page
【问题讨论】: