用于 Woocommerce 电子邮件通知的跟踪号码简码

Posted

技术标签:

【中文标题】用于 Woocommerce 电子邮件通知的跟踪号码简码【英文标题】:Tracking number shortcode to be used on Woocommerce email notifications 【发布时间】:2019-09-25 13:48:30 【问题描述】:

我正在使用WooCommerce Admin Custom Order Fields 插件为跟踪号创建自定义字段。 我正在使用以下代码创建一个简码,我将其包括在内以订购已完成的电子邮件通知:

// [tracking_number]
function tracking_number_func( $atts )
    global $post;
    $order_id2 = $post->ID;
    return get_post_meta( $order_id2, '_wc_acof_2', true );
    // https://docs.woocommerce.com/document/woocommerce-admin-custom-order-fields/

add_shortcode( 'tracking_number', 'tracking_number_func' );

但更新 WooCommerce 后它现在无法正常工作。我不确定哪个版本更改使它无法使用。

我需要进行哪些更改才能使其正常工作?

【问题讨论】:

您在订单完成电子邮件通知中究竟在哪里使用此短代码? 我将它与“电子邮件定制器”插件一起使用,短代码是“完整电子邮件” 【参考方案1】:

电子邮件通知没有 post 对象。根据您使用此简码的位置,尝试:

function wc_get_tracking_number( $atts )
    global $order;

    return get_post_meta( $order->get_id(), '_wc_acof_2', true );

add_shortcode( 'tracking_number', 'wc_get_tracking_number' );

// USAGE: [tracking_number]

代码在您的活动子主题(或活动主题)的functions.php 文件中。未经测试,它可以工作。

【讨论】:

我尝试了您的代码,但遗憾的是它没有工作。在我更新订单以完成后,它转到 URL“myURL.com/wp-admin/post.php”的空白屏幕,并且电子邮件没有发送出去。我找到了这个答案***.com/questions/21633120/…,但是将$order_id2 = $post->ID;从我自己的代码替换为$order->get_id();也不起作用。相同的空白页,没有电子邮件发送出去。顺便说一句,感谢您抽出宝贵的时间 @dunkaroo 此代码无法与您的插件一起使用......它只能通过正常的相关挂钩和相关的 WooCommerce 模板工作。 代码在更新之前确实有效,我想知道 API 是否发生了变化。我会做更多的实验和谷歌搜索。如果我找到答案,我会在这里发帖,因为人们可能有类似的问题。谢谢:)

以上是关于用于 Woocommerce 电子邮件通知的跟踪号码简码的主要内容,如果未能解决你的问题,请参考以下文章

在 WooCommerce 电子邮件通知中更改订单项元数据

延期交货通知Woocommerce

如何防止在 WooCommerce 电子邮件通知中运行挂钩

从 WooCommerce 中的电子邮件通知中删除 BACS 指令

通过 WooCommerce 管理员电子邮件通知中的“woocommerce_email_order_meta”挂钩显示产品自定义字段

立即在 WooCommerce 中设置待处理订单并发送处理电子邮件通知