根据收费有条件地定制WooCommerce购物车总产量

时间:2017-09-05 10:31:20

标签: php wordpress woocommerce cart tax

我尝试做一件非常简单的事,但对我来说,我不能让它发挥作用。

这是来自wc-cart-functions.php

        if ( ! empty( $tax_string_array ) ) {
            $taxable_address = WC()->customer->get_taxable_address();
            $estimated_text  = WC()->customer->is_customer_outside_base() && ! WC()->customer->has_calculated_shipping()
                ? sprintf( ' ' . __( 'estimated for %s', 'woocommerce' ), WC()->countries->estimated_for_prefix( $taxable_address[0] ) . WC()->countries->countries[ $taxable_address[0] ] )
                : '';
            $value .= '<small class="includes_tax">' . sprintf( __( '(includes %s)', 'woocommerce' ), implode( ', ', $tax_string_array ) . $estimated_text ) . '</small>';
        }
    }

    echo apply_filters( 'woocommerce_cart_totals_order_total_html', $value );
}

如果应用任何 $fee ,则$ value应该不同。 但是,如果我检查,我只会从 0.00 € 变量获得 $fee 值。

有人可以帮助我简单地在变量中应用FEE的值并检查一个简单的 if 子句,如:

  

如果适用费用---&gt; 1
  否则---&gt; 2个

我该怎么做?

1 个答案:

答案 0 :(得分:0)

如您所见,您可以使用位于该woocommerce_cart_totals_order_total_html核心代码中的 wc-cart-functions.php 过滤器钩子来更改大型购物车总额的输出:

add_filter( 'woocommerce_cart_totals_order_total_html', 'custom_cart_totals_order_total_html', 10, 1 );
function custom_cart_totals_order_total_html( $value ) {
    // Get the fee cart amount
    $fees_total = WC()->cart->fee_total;

    // HERE is the condition
    if( ! empty($fees_total) && $fees_total != 0 ){
        // Change/customize HERE $value (just for test)
        $value .= " <small>($fees_total)<small>";
    }

    // Always return $value
    return $value;
}

代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。

此代码经过测试并有效。

  

永远不要覆盖核心文件,因为这是禁止的,危险的,并且由于许多原因而不方便

您需要在$value

的条件下自定义代码