首页 文章

Woocommerce送货方式仅适用于账单地址

提问于
浏览
0

我为WooCommerce创建了一个非常小而简单的自定义送货方式,它基本上根据城市和重量计算运费 .

class WC_Chilexpress_Shipping_Method extends WC_Shipping_Method {

... 

public function calculate_shipping($package){

    $small_price = get_post_meta($shipping[0]->ID, 'chxp_small_price', true);
    $medium_price = get_post_meta($shipping[0]->ID, 'chxp_medium_price', true);

    if($weight < 6  && $weight >= 3) :
        $cost = $medium_price + 1000;
    elseif($weight < 10 && $weight >= 6) :
        $cost = $medium_price + 1700;
    elseif ($weight >= 10) :
        $cost = $medium_price + 2200;
    elseif($weight < 3) : 
        $cost = (int)$small_price + 700;
    endif;

    $this->add_rate( array(
      'id'  => $this->id,
      'label' => $this->title,
      'cost'    => $cost
    ));                        

    return $cost;
}

只使用账单地址,一切正常,但如果选择“送货地址”,则结账时会选择“在店内取货” .

完整代码在这里:

https://gist.github.com/albertojm/55a9319dadc36c936c84a3904d114fbd

https://gist.github.com/albertojm/8e2e3fe2d90e19dc1875ef04ab565125

1 回答

  • 0

    问题在于,在计算运费后,Woocommerce将发布数据重新发送到结账页面,但没有s_state或州后变量 .

    由于我根据这两个变量计算运费,我不得不将它们保存到会话变量中并从此处计算 .

相关问题