Php 筛选电子商务电子邮件发送文本值

Php 筛选电子商务电子邮件发送文本值,php,wordpress,function,woocommerce,filtering,Php,Wordpress,Function,Woocommerce,Filtering,我正在尝试使用“woocommerce\u订单\u配送到\u显示”过滤器在woocommerce电子邮件表中显示“免费”,而不会产生任何配送费用。在图中,我试图将“固定费率”显示为“免费”。我的PHP是中等的,我的代码不能完全放在那里。有人看到我可能错过什么了吗 我的功能破坏了实际的电子邮件,所以我看不出它是否正常工作。当该功能到位时,我重新发送一封正在处理的电子邮件,而不是重新发送,它会在同一浏览器窗口中打开,在主电子邮件正文表数据(屏幕截图)下方没有任何内容 已更新 我搜集了一些类似的案

我正在尝试使用“woocommerce\u订单\u配送到\u显示”过滤器在woocommerce电子邮件表中显示“免费”,而不会产生任何配送费用。在图中,我试图将“固定费率”显示为“免费”。我的PHP是中等的,我的代码不能完全放在那里。有人看到我可能错过什么了吗

我的功能破坏了实际的电子邮件,所以我看不出它是否正常工作。当该功能到位时,我重新发送一封正在处理的电子邮件,而不是重新发送,它会在同一浏览器窗口中打开,在主电子邮件正文表数据(屏幕截图)下方没有任何内容

已更新

我搜集了一些类似的案例,并重写了下面的函数。这仍然不起作用,但我认为我需要初始化WC_Order类来告诉函数引用哪个顺序。有人能帮我完成吗

/* return custom text on email when shipping is free */
add_filter( 'woocommerce_order_shipping_to_display', 'filter_email_shipping_text', 10 );
function filter_email_shipping_text( $shipping ) {
  global $wcdn;
  $order = new WC_Order($wcdn->print->order_id);
  if ( $order->get_shipping_method() || $order->order_shipping = 0 ) {
    $shipping = sprintf(__( 'Free', 'woocommerce' ));
  }
  return $shipping;
}
结论

我能够修复我的功能,现在它可以按预期的方式工作。这是一个有效的函数和过滤器,以防任何人需要复制

/* return custom text on email when shipping is free */
add_filter( 'woocommerce_order_shipping_to_display', 'filter_email_shipping_text', 10, 2 );

function filter_email_shipping_text( $shipping, $order_id ) {
  global $woocommerce, $post;
  $order = new WC_Order( $order_id );
  if ( $order->order_shipping == 0 ) {
    $shipping = sprintf(__( 'Free!', 'woocommerce' ));
  }
  return $shipping;
}

$shipping=_uu('Free','woocommerce');无效。。。除非(双下划线)是一个函数,这似乎不太可能(至少打破了POLA)。您可能应该使用不同于$this($order?)的变量。
/* return custom text on email when shipping is free */
add_filter( 'woocommerce_order_shipping_to_display', 'filter_email_shipping_text', 10, 2 );

function filter_email_shipping_text( $shipping, $order_id ) {
  global $woocommerce, $post;
  $order = new WC_Order( $order_id );
  if ( $order->order_shipping == 0 ) {
    $shipping = sprintf(__( 'Free!', 'woocommerce' ));
  }
  return $shipping;
}