例如,我使用add_fee表单使用多个折扣
$wc_cart->add_fee( sprintf(__('fee 1', 'fee1') )."", -10, false );
$wc_cart->add_fee( sprintf(__('fee 2', 'fee1') )."", -20, false );
$wc_cart->add_fee( sprintf(__('fee 3', 'fee1') )."", -30, false );我想计算并显示整个add_fee值的总和,如下所示
Total fee : 60如何从Woo-commerce获得add fee价值。
提前谢谢。
发布于 2019-12-17 12:12:53
您可以使用下面的过滤器来计算add_fee()总数,请检查并添加费用2和费用3:这只是一个例子,您可以根据需要修改代码
add_action( 'woocommerce_cart_calculate_fees','woocommerce_custom_surcharge' );
function woocommerce_custom_surcharge() {
global $woocommerce;
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
$percentage = 0.03;
$taxes = array_sum($woocommerce->cart->taxes);
$surcharge = ( $woocommerce->cart->cart_contents_total + $woocommerce->cart->shipping_total + $taxes ) * $percentage;
// Make sure that you return false here. We can't double tax people!
$woocommerce->cart->add_fee( 'Fee 1', $surcharge, false, '' );
}发布于 2019-12-17 21:30:05
您可以使用以下代码来获取所有费用并在购物车小计后显示,
<?php
function get_all_fees() {
$fee_object = WC()->cart->fees_api();
$allfeedata = $fee_object->get_fees();
$totalfee = array_sum(array_column($allfeedata, 'amount'));
?>
<tr class="fee-total">
<th><?php esc_html_e('Total Fee', 'woocommerce'); ?></th>
<td data-title="<?php esc_attr_e('Total Fee', 'woocommerce'); ?>"><?php echo absint($totalfee); ?></td>
</tr>
<?php
}
add_action('woocommerce_cart_totals_before_order_total', 'get_all_fees');
?>https://stackoverflow.com/questions/59367455
复制相似问题