Php 自定义以编程方式在Woocommerce中添加装运价格
我试图在Woocommerce中通过在满足条件时更改交货价格来定制购物车代码 例如,如果产品重量为25公斤,则只需在顶部添加另一个价格即可 下面是我在functions.php中的代码,但当我刷新购物车时,它似乎不起作用Php 自定义以编程方式在Woocommerce中添加装运价格,php,sql,wordpress,api,woocommerce,Php,Sql,Wordpress,Api,Woocommerce,我试图在Woocommerce中通过在满足条件时更改交货价格来定制购物车代码 例如,如果产品重量为25公斤,则只需在顶部添加另一个价格即可 下面是我在functions.php中的代码,但当我刷新购物车时,它似乎不起作用 $chosen_shipping_state = WC()->customer->get_shipping_postcode(); $chosen_state = $chosen_shipping_state; // Get the selected shippi
$chosen_shipping_state = WC()->customer->get_shipping_postcode();
$chosen_state = $chosen_shipping_state;
// Get the selected shipping price
$chosen_shipping_method_price = WC()->session->get('cart_totals')['shipping_total'];
if ($cartweight >= 25 && $cartweight <= 50) {
WC()->session->set('shipping_total', '100');
do_action( 'woocommerce_cart_updated' );
}
$selected_shipping_state=WC()->customer->get_shipping_postcode();
$selected_state=$selected_shipping_state;
//获取选定的装运价格
$selected_shipping_method_price=WC()->session->get('cart_totals')['shipping_total'];
如果($cartwweight>=25&&$cartwweight会话->设置('shipping_total','100');
do_action('woocommerce_cart_Update');
}
因此,所选快递的当前价格为5.50美元
如果产品重量超过25公斤,如何将快递价格设置为11美元,购物车自动刷新此金额?首先,您必须选择配送方式ID 其次,您需要将此代码放在active theme目录中的functions.php文件中。如果您的代码不起作用,请尝试清除WooCommerce瞬态。为了清除WooCommerce瞬态,您可以转到WooCommerce->Status。然后单击工具选项卡,您将看到WooCommerce瞬态。单击清除瞬态按钮
add_filter( 'woocommerce_package_rates', 'override_ups_rates' );
function override_ups_rates( $rates ) {
foreach( $rates as $rate_key => $rate ){
// Check if the shipping method ID is UPS for example
if( ($rate->method_id == 'flexible_shipping_ups') ) {
// Set cost to zero
$rates[$rate_key]->cost = 5.50;
}
}
return $rates;
}
谢谢堆!!它成功了!!!:D一个小小的调整,我必须打印r($rate),这样我才能清楚地看到数组中的所有元素。结果是“method\u id”不匹配,它必须匹配“id”,因此代码是if($rate->id='flexible\u shipping\u-ups'){再次感谢!你这个人!@Khoa你是受欢迎的:-)