2014-10-27 64 views
1

我正尝试使用客户数据预先填充WooCommerce发货地址。这适用于除shipping_postcode之外的所有字段。任何想法我做错了什么?WooCommerce默认发货邮政编码

// Hook in 
add_filter('woocommerce_checkout_fields' , 'custom_override_checkout_fields'); 

// Our hooked in function - $fields is passed via the filter! 
function custom_override_checkout_fields($fields) { 
    $customer_id = get_current_user_id(); 
    $fields['shipping']['shipping_first_name']['default'] = get_user_meta($customer_id, $name . 'shipping_first_name', true); 
    $fields['shipping']['shipping_last_name']['default'] = get_user_meta($customer_id, $name . 'shipping_last_name', true); 
    $fields['shipping']['shipping_company']['default'] = get_user_meta($customer_id, $name . 'shipping_company', true); 
    $fields['shipping']['shipping_address_1']['default'] = get_user_meta($customer_id, $name . 'shipping_address_1', true); 
    $fields['shipping']['shipping_address_2']['default'] = get_user_meta($customer_id, $name . 'shipping_address_2', true); 
    $fields['shipping']['shipping_city']['default'] = get_user_meta($customer_id, $name . 'shipping_city', true); 
    $fields['shipping']['shipping_postcode']['default'] = get_user_meta($customer_id, $name . 'shipping_postcode', true); 
    $fields['shipping']['shipping_country']['default'] = get_user_meta($customer_id, $name . 'shipping_country', true); 
    $fields['shipping']['shipping_state']['default'] = get_user_meta($customer_id, $name . 'shipping_state', true); 
    return $fields; 
} 

我甚至尝试了一个简单的任务,没有运气:

$fields['shipping']['shipping_postcode']['default'] = "90210"; 

回答

0

我们找到了一个解决方法这一点。

此行出于某种原因不能正常工作:

$fields['shipping']['shipping_postcode']['default'] = get_user_meta($customer_id, $name . 'shipping_postcode', true); 

但这个代码实现了我们想要的:

$woocommerce->customer->set_shipping_postcode(get_user_meta($customer_id, $name . 'shipping_postcode', true));