【问题标题】:WooCommerce custom notification issue with $email variable argument带有 $email 变量参数的 WooCommerce 自定义通知问题
【发布时间】:2021-04-14 16:52:16
【问题描述】:

我有 2 个自定义电子邮件邮件设置为 wc_shipped_orderwc_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-&gt;id 是什么,我尝试为$email 转储变量,但那里什么都没有。

有人可以帮我吗?

【问题讨论】:

    标签: php wordpress object woocommerce email-notifications


    【解决方案1】:

    在 WooCommerce 中,$email 变量参数应该是一个对象,您可以在其中获取一些属性(如代码中的 id。抛出的错误表明它不是一个对象,因此不可能从中获取任何属性(因此不是id 属性)

    为了避免这个问题,你可以使用 PHP 条件函数 is_object() 像:

    add_action( 'woocommerce_email_before_order_table', 'tracking_number_email', 10, 4 );
    function tracking_number_email( $order, $sent_to_admin, $plain_text, $email ) {
        if( is_object($email) && 'wc_shipped_order_email' == $email->id ){
            $tracking_number = get_post_meta( $order->get_id(), 'tracking_number', true );
    
            if ( ! empty($tracking_number) ) {
                echo '<p><strong>'.__('Australia Post Tracking Number').': </strong>' . $tracking_number . '</p>';
            }
        }
    }
    

    它现在应该可以正常工作了。

    现在这个问题可能与插件、您的主题或您制作的其他一些自定义代码有关。根据提供的信息,没有人能猜出为什么会发生这种情况。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-08
      相关资源
      最近更新 更多