Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 自定义以编程方式在Woocommerce中添加装运价格_Php_Sql_Wordpress_Api_Woocommerce - Fatal编程技术网

Php 自定义以编程方式在Woocommerce中添加装运价格

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

我试图在Woocommerce中通过在满足条件时更改交货价格来定制购物车代码

例如,如果产品重量为25公斤,则只需在顶部添加另一个价格即可

下面是我在functions.php中的代码,但当我刷新购物车时,它似乎不起作用

$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你是受欢迎的:-)