2017-06-08 2 views

Répondre

1
$rate_table = array(); 

$shipping_methods = WC()->shipping->get_shipping_methods(); 

foreach($shipping_methods as $shipping_method){ 
    $shipping_method->init(); 

    foreach($shipping_method->rates as $key=>$val) 
     $rate_table[$key] = $val->label; 
} 

echo $rate_table[WC()->session->get('chosen_shipping_methods')[0]]; 

Essayez comme ça

+0

ne fonctionne pas dans mon cas, en blanc – developersaumya

+0

@developersaumya: Essayez d'imprimer $ rate_table. Vérifiez qu'il contient les données –

+0

$ rate_table est vide – developersaumya

0

Si le client a calculé l'expédition à l'extrémité avant, cela devrait fonctionner:

function get_shipping_name_by_id($shipping_id) { 
    $packages = WC()->shipping->get_packages(); 

    foreach ($packages as $i => $package) { 
     if (isset($package['rates']) && isset($package['rates'][ $shipping_id ])) { 
      $rate = $package['rates'][ $shipping_id ]; 
      /* @var $rate WC_Shipping_Rate */ 
      return $rate->get_label(); 
     } 
    } 

    return ''; 
} 

Ceci renverra une chaîne vide si elle ne pouvait pas trouver un nom pour l'identifiant d'expédition donné.