【发布时间】:2021-04-14 16:52:16
【问题描述】:
我有 2 个自定义电子邮件邮件设置为 wc_shipped_order 和 wc_received_order,效果很好。我设置了触发器,因此当订单状态更改为“已发货”时,它会触发已发货的订单电子邮件。
我正在尝试通过另一个自定义插件通过操作挂钩 woocommerce_email_before_order_table 添加跟踪运输代码,其中包含以下内容:
add_action( 'woocommerce_email_before_order_table', 'tracking_number_email', 10, 4 );
function tracking_number_email( $order, $sent_to_admin, $plain_text, $email ) {
if( 'wc_shipped_order_email' == $email->id ){
echo '<p><strong>'.__('Australia Post Tracking Number').': </strong>' . get_post_meta( $order->get_id(), 'tracking_number', true ) . '</p>';
}
}
但是,当我尝试添加 if 语句来检查邮件程序是否为 wc_shipped_order 时,我收到了错误消息。实际的 echo 部分有效,但 IF 语句失败并抛出此错误:
Notice: Trying to get property 'id' of non-object in /var/www/wp-content/plugins/my-custom-functions/inc/php/functional.php(103) : eval()'d code on line 239
它不知道$email->id 是什么,我尝试为$email 转储变量,但那里什么都没有。
有人可以帮我吗?
【问题讨论】:
标签: php wordpress object woocommerce email-notifications