修改WooCommerce电子邮件发货文本值

时间:2015-10-12 作者:Lance

我正在尝试使用“woocommerce\\u order\\u shipping\\u to\\u display”过滤器在woocommerce电子邮件表中显示“Free”,而不会产生运费。在图中,我试图将“Free”和“Flat Rate”值显示为Free。我的PHP只是中等的,但我的代码无法完全实现。有人看到我可能错过什么了吗?

/* return custom text on email when shipping is free */
function filter_email_shipping_text( $shipping ) {
    if ( $this->order_shipping != 0) ) {
      $shipping = __( \'Free!\', \'woocommerce\' );
      return $shipping;
    } else {
      return $shipping;
    }
}
add_filter( \'woocommerce_order_shipping_to_display\', \'filter_email_shipping_text\', 1 );

enter image description here

1 个回复
最合适的回答,由SO网友:Lance 整理而成

FIXED IT

我能够修复我的功能,现在它按预期的方式工作。这是一个工作函数和过滤器,以防任何人想要使用。当统一费率免费配送时,这将返回自定义文本。

/* 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;
}