当新订单邮件在WooCommerce中触发时?尝试在发送之前添加新值

时间:2017-10-17 21:16:04

标签: php wordpress email woocommerce

我在WooCommerce中有一个官方付款插件(Transbank of Chile)但这个插件直接在“thankyou”页面打印transaction_id。我做了这个事务并添加到数据库。

问题是,当WooCommerce发送“新订单”邮件时,transaction_id永远不会显示。我认为在收到transaction_id号码之前邮件已经发送过了。我想知道,当WooCommerce发送新的订单邮件时?

1 个答案:

答案 0 :(得分:0)

您可以使用woocommerce_email_after_order_table挂钩将自定义数据添加到电子邮件中。

/**
 * 
 * @param instance $order
 * @param bool $sent_to_admin TRUE for admin
 */
function wh_addTransactionIdOrderEmail($order, $sent_to_admin)
{
    $order_id = method_exists($order, 'get_id') ? $order->get_id() : $order->id;
    $transaction_id = get_post_meta($order_id, "_transaction_id ", true); //<-- replace it with your metakey
    if(empty($transaction_id)) //if blank i.e for Failed/Cancelled order then do not add transaction ID
        return;
    echo '<p></p><p><strong>Transaction ID:</strong> ' . $transaction_id . '</p>';
}

add_action('woocommerce_email_after_order_table', 'wh_addTransactionIdOrderEmail', 10, 2);

代码进入您的活动子主题(或主题)的functions.php文件。或者也可以在任何插件php文件中。
代码已经过测试并且有效。

希望这有帮助!