ड्रुपल कॉमर्स में प्रोग्रामेटिक रूप से शिपिंग एड्रेस कैसे प्राप्त करें - मुझे किस रैपर का उपयोग करना चाहिए?


12

मुझे ड्रुपल कॉमर्स में प्रोग्रामेटिक रूप से शिपिंग एड्रेस (शिपिंग कंट्री सटीक होना चाहिए) प्राप्त करने की आवश्यकता है। मेरे पास $orderवस्तु है। मुझे शिपिंग पता कैसे मिल सकता है?

EDIT - ठीक है मैंने ऐसा किया

 $order_wrapper = entity_metadata_wrapper('commerce_order', $order);
 $shipping =  $order_wrapper->commerce_customer_shipping->value();

अब मुझे इसे फिर से लपेटने की आवश्यकता है, लेकिन मुझे इस प्रकार का पता नहीं है

$shipping_wrapper = entity_metadata_wrapper(?, $order);

प्रश्नवाचक चिन्ह की जगह मैंने क्या रखा है?

जवाबों:


7

ठीक है मैंने इस तरह से किया

function commerce_shipping_biagetti_service_rate_order($shipping_service, $order) {
  $order_wrapper = entity_metadata_wrapper('commerce_order', $order);
  $shipping = $order_wrapper->commerce_customer_shipping->commerce_customer_address->value();
  //$shipping is an array containing all shipping data

1
क्या आपने अपने कस्टम मॉड्यूल में $ ऑर्डर ऑब्जेक्ट प्राप्त करने का प्रबंधन किया था? अगर ऐसा है तो आप मुझे बता सकते हैं कैसे?
आश्कर ए। रहमान

1

आप उपयोग कर सकते हैं commerce_customer_profile_load($profile_id), प्रोफ़ाइल आईडी को $order->commerce_customer_shippingचर से प्राप्त किया जा सकता है क्योंकि आपके पास ऑर्डर ऑब्जेक्ट है।


1

ग्राहक खोजने के लिए 2 तरीके हैं / उपयोगकर्ता शिपिंग पता-

function get_user_shipping_address(){

global $user; 
$default_pid =commerce_addressbook_get_default_profile_id($user->uid,'shipping');

प्रोफ़ाइल आईडी प्राप्त करने के बाद आप प्रोफ़ाइल लोड कर सकते हैं और ग्राहक का नाम और पता प्राप्त कर सकते हैं

$profile_load = commerce_customer_profile_load($default_pid);
$first_line = $profile_load->commerce_customer_address['und'][0]['name_line'];
$landmark = $profile_load->commerce_customer_address['und'][0]['sub_premise'];
$postal_code = $profile_load->commerce_customer_address['und'][0]['postal_code'];
$state = $profile_load->commerce_customer_address['und'][0]['locality'];
$add[] = $first_line . ' ' . $landmark . ' ' . $postal_code . ' ' . $state;
return $add;
}

दूसरा तरीका यदि आपके पास $ आदेश है

function get_default_address_of_customer_by_order_id($order) {
  $order1 = commerce_order_load($order);
  $shipping_id = $order1->commerce_customer_shipping['und'][0]['profile_id'];
  $address = commerce_customer_profile_load($shipping_id);
  $first_line = $address->commerce_customer_address['und'][0]['name_line'];
  $landmark = $address->commerce_customer_address['und'][0]['sub_premise'];
  $postal_code = $address->commerce_customer_address['und'][0]['postal_code'];
  $state = $address->commerce_customer_address['und'][0]['locality'];
  $add[] = $first_line . ' ' . $landmark . ' ' . $postal_code . ' ' . $state;
  return $add;
 }
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.