我正试图增加65%的增加在所有运输方式。
我已经使用了这个函数的变体,但这并不影响返回的速率。
function increase_shipping_costs() {
// Get the current shipping rates
$shipping_zones = WC_Shipping_Zones::get_zones();
foreach ( $shipping_zones as $zone ) {
foreach ( $zone['shipping_methods'] as $shipping_method ) {
// Check if the shipping method is a flat rate
if ( !$shipping_method->id === 'free_shipping' ) {
// Get the current cost
$current_cost = $shipping_method->cost;
// Calculate the increased cost
$increased_cost = $current_cost + ( $current_cost * 0.65 );
// Update the shipping cost
$shipping_method->cost = $increased_cost;
$shipping_method->save();
}
}
}
}
add_filter('woocommerce_package_rates', 'increase_shipping_costs', 10, 2);
2条答案
按热度按时间9cbw7uwe1#
要在所有运输方式费率中增加65%的成本,
woocommerce_package_rates
是正确的过滤器钩子,但您需要修改函数中的大部分内容以使其正常工作 (因为代码中有一些遗漏和错误):代码放在活动子主题(或活动主题)的functions.php文件中。应该能用
ktca8awb2#
筛选器的回调设置不正确:
您需要使用通过过滤器提供的数据(例如:
$package_rates
)而不是WC_Shipping_Zones::get_zones()
。