我一整天都在尝试并研究整个网络,我似乎无法让这个行动起作用。基本上我在选择自定义订单操作时尝试触发Woo电子邮件。在这种情况下,它是一个礼品收据。
请注意:当我打开调试时,我会收到headers already sent notice
,没有关闭。
以下是我尝试过的代码:
function gift_receipt_add_order_meta_box_action($actions)
{
global $theorder;
$actions['send_gift_receipt'] = __('Send Gift Receipt', 'enyc');
return $actions;
}
add_action('woocommerce_order_actions', 'gift_receipt_add_order_meta_box_action');
function gift_receipt_wc_process_order_meta_box_action()
{
$mailer = WC()->mailer();
$mails = $mailer->get_emails();
if (!empty($mails))
{
foreach ($mails as $mail)
{
if ($mail->id == 'wc_gift_order_email')
{
$mail->trigger($order->id);
}
}
}
}
add_action('woocommerce_order_action_send_gift_receipt', 'gift_receipt_wc_process_order_meta_box_action');
感谢。
答案 0 :(得分:0)
function gift_receipt_wc_process_order_meta_box_action()
缺少$ order
function gift_receipt_wc_process_order_meta_box_action($order)
这可能是问题吗?
答案 1 :(得分:0)
所以我在多喝咖啡后想出来了。问题是2折:
1)我没有将订单($ order)信息传递给函数gift_receipt_wc_process_order_meta_box_action()
2)电子邮件的ID(名称)实际上是'wc_gift_order'而不是'wc_gift_order_email'
感谢您的帮助!