【问题标题】:get table rate shipping data in Woocommerce REST API在 Woocommerce REST API 中获取表格运费数据
【发布时间】:2017-09-27 07:56:28
【问题描述】:

我正在尝试在 Woocommerce REST API 中获取所有有效的运输方式。我怎样才能做到这一点。我是 woocommerce REST API 的新手,非常感谢任何帮助。

我想要这样的回应 -

{ "shipping_methods": { "method_id": "method_title" } }

【问题讨论】:

    标签: rest api shipping


    【解决方案1】:

    我终于想出了解决方案。它可能会帮助其他人。 以下是获取所有表格运费数据的完整代码,包括运输区域、按区域的运输方式和按区域的运费 -

     header('Content-type: application/json');
     $json_file=file_get_contents('php://input');
     $jsonvalue= json_decode($json_file,true);
    
     global $wpdb;
     global $woocommerce;
    
     $active_methods   = array();
    
    $shipping_methods = $woocommerce->shipping->load_shipping_methods();
    //echo "<pre>";print_r($shipping_methods);
    
    foreach ( $shipping_methods as $id => $shipping_method ) {
    
     if ( isset( $shipping_method->enabled ) && 'yes' === $shipping_method->enabled ) {
    
            $data_arr = array( 'title' => $shipping_method->title, 'tax_status' => $shipping_method->tax_status );  
    
        if($id=='table_rate'){          
    
         $raw_zones = $wpdb->get_results("SELECT zone_id, zone_name, zone_order FROM {$wpdb->prefix}woocommerce_shipping_zones order by zone_order ASC;");
    
       //echo "<pre>";print_r($raw_zones);
    
        $shipping = array();
        $shippingarr = array();
        foreach ($raw_zones as $raw_zone) {
    
             $zones = new WC_Shipping_Zone($raw_zone->zone_id);
    
             $zone_id = $zones->zone_id; 
             $zone_name = $zones->zone_name; 
             $zone_enabled = $zones->zone_enabled; 
             $zone_type = $zones->zone_type; 
             $zone_order = $zones->zone_order; 
    
             $shipping['zone_id'] = $zone_id;
             $shipping['zone_name'] = $zone_name;
             $shipping['zone_enabled'] = $zone_enabled;
             $shipping['zone_type'] = $zone_type;
             $shipping['zone_order'] = $zone_order;
    
             $shipping_methods = $zones->shipping_methods; 
             foreach($shipping_methods as $shipping_method){
    
        $methodid = $shipping_method["number"];
                 $raw_rates[$methodid]['rates'] = $wpdb->get_results("SELECT * FROM {$wpdb->prefix}woocommerce_shipping_table_rates WHERE shipping_method_id={$methodid};",ARRAY_A);
    
    
             }
    
         $shipping['shipping_methods'] = $raw_rates;
    
        $raw_country = $wpdb->get_results("SELECT location_code FROM {$wpdb->prefix}woocommerce_shipping_zone_locations WHERE zone_id={$zone_id};",ARRAY_N);
    
             $shipping['countries'] = $raw_country;
    
             $shippingarr[] = $shipping;
    
    
        }
    
            $data_arr['shipping_zones'] = $shippingarr; 
    
            }
    
            $active_methods[ $id ] = $data_arr;
    
        }
    
      } 
    
    
         if(!empty($shippingarr)){
    
         $result['success']='true';
         $result['error']="0";
         $result['msg']='Shipping methos found.';  
         $result['data']=$active_methods; 
    
         }else{
    
        $result['success']='true';
        $result['error']="0";
        $result['msg']='Shipping methos found.';  
        $result['data']= array();    
    
        } 
    
        echo json_encode($result); `
    

    【讨论】:

      猜你喜欢
      • 2021-01-25
      • 2018-10-27
      • 2017-03-09
      • 2014-11-06
      • 1970-01-01
      • 1970-01-01
      • 2021-07-31
      • 1970-01-01
      • 2022-01-01
      相关资源
      最近更新 更多