2013-10-03 13 views

Trả lời

10

Bạn có thể làm để có được/thiết postcodes thanh toán/vận chuyển sau,

Để thiết các giá trị,

$customer = new WC_Customer(); 
$customer->set_postcode('123456');  //for setting billing postcode 
$customer->set_shipping_postcode('123456'); //for setting shipping postcode 

Nếu bạn chỉ muốn lấy các postcodes, bạn có thể lấy từ chính bảng meta của người dùng,

$shipping_postcode = get_user_meta($current_user->ID, 'shipping_postcode', true); 
$billing_postcode = get_user_meta($current_user->ID, 'billing_postcode', true); 
4

Bạn có thể sử dụng lớp WC_Customer cung cấp chức năng này. Nó được tải trong lớp Woocommerce. Thông tin này được lưu trữ trong phiên hiện tại.

function set_shipping_zip() { 
    global $woocommerce; 

    //set it 
    $woocommerce->customer->set_shipping_postcode(12345); 
    $woocommerce->customer->set_postcode(12345); 

    //get it 
    $woocommerce->customer->get_shipping_postcode();  
    $woocommerce->customer->get_postcode(); 
} 

Các tài liệu đầy đủ cho lớp này: http://docs.woothemes.com/wc-apidocs/class-WC_Customer.html

Hope this helps.

+0

Điều này cũng hoạt động. Cảm ơn! – Rao

+2

Tôi cũng muốn chỉ ra rằng phương pháp này chỉ đặt dữ liệu trong biến phiên và không được lưu trữ trong DB. Nếu bạn muốn đặt nó trong db, bạn phải đặt 'billing_postcode' và' shipping_postcode' trong bảng 'wp_usermeta'. – Rao

+0

@Rao, đây là chính xác những gì tôi muốn :-) Tôi muốn hỏi địa chỉ giao hàng trên trang chủ của tôi (để thông báo trước cho người dùng nếu tôi không gửi ở đây) và đã đặt nó trên trang Checkout . –

4

Cảm ơn @rao! Tôi đã tìm kiếm điều này trong nhiều giờ ... Tôi đã có thể lấy mã của bạn và sử dụng nó để kéo toàn bộ địa chỉ của người dùng - vì vậy tôi có thể sử dụng từng trường địa chỉ để điền trước một mẫu địa chỉ tôi đang tạo ở nơi khác.

$fname = get_user_meta($current_user->ID, 'first_name', true); 
$lname = get_user_meta($current_user->ID, 'last_name', true); 
$address_1 = get_user_meta($current_user->ID, 'billing_address_1', true); 
$address_2 = get_user_meta($current_user->ID, 'billing_address_2', true); 
$city = get_user_meta($current_user->ID, 'billing_city', true); 
$postcode = get_user_meta($current_user->ID, 'billing_postcode', true); 

echo $fname . "<BR>"; 
echo $lname . "<BR>"; 
echo $address_1 . "<BR>"; 
echo $address_2 . "<BR>"; 
echo $city . "<BR>"; 
echo $postcode . "<BR>"; 
+0

Tôi biết đó là một bài đăng cũ nhưng bạn cũng có thể truy cập vào Tên của địa chỉ thanh toán bằng cách sử dụng 'billing_first_name' và' billing_last_name', trong trường hợp một tên khác được sử dụng :) cũng nên áp dụng cho Địa chỉ giao hàng –

Các vấn đề liên quan