根据费用有条件地自定义 WooCommerce 购物车总输出
Conditionally customize WooCommerce cart grand total output based on a fee
我尝试做一件非常简单的事情,但对我来说我没有让它工作。
这是来自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 应该不同。
但是如果我检查,我只能从 $fee
变量中得到 0.00 €
值。
有人可以帮我简单地在变量中应用 FEE 的值并签入一个简单的 if
子句,例如:
if fee is applied ---> 1
else ---> 2
我该怎么做?
如您所见,您可以使用位于 wc-cart-functions.php
核心代码中的 woocommerce_cart_totals_order_total_html
过滤器挂钩来更改大车总计的输出:
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 文件或任何插件文件。
此代码已经过测试并且有效。
Never overide core files, as this is something prohibited, dangerous and not convenient for many reasons
您需要自定义条件中的代码 $value
我尝试做一件非常简单的事情,但对我来说我没有让它工作。
这是来自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 应该不同。
但是如果我检查,我只能从 $fee
变量中得到 0.00 €
值。
有人可以帮我简单地在变量中应用 FEE 的值并签入一个简单的 if
子句,例如:
if fee is applied ---> 1
else ---> 2
我该怎么做?
如您所见,您可以使用位于 wc-cart-functions.php
核心代码中的 woocommerce_cart_totals_order_total_html
过滤器挂钩来更改大车总计的输出:
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 文件或任何插件文件。
此代码已经过测试并且有效。
Never overide core files, as this is something prohibited, dangerous and not convenient for many reasons
您需要自定义条件中的代码 $value