在定制订单操作上触发WooCommerce电子邮件

时间:2017-01-11 03:58:13

标签: wordpress email woocommerce

我一整天都在尝试并研究整个网络,我似乎无法让这个行动起作用。基本上我在选择自定义订单操作时尝试触发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');

感谢。

2 个答案:

答案 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'

感谢您的帮助!