2017-10-25 3 views
0

Wordpress/Woocommerce 사용.Wordpress : 계좌에 맞춤 청구 필드 저장 청구서 수신 주소

"NIF/CIF"라는 체크 아웃 페이지에 맞춤 결제 필드를 추가하는 코드가 있습니다. 그것은 잘 작동하지만 그 값은 고객 계정 "청구서 수신 주소"데이터에 저장되지 않습니다.

일단 고객이 첫 주문을하면 모든 청구서 수신 주소 값이 주소 (주소, 주, 국가 등)에 저장되지만 사용자 정의 필드는 저장되지 않습니다.

내 함수에서 데이터베이스의 값을 저장하는 코드 줄이 누락되어 있지만이 방법을 시작하는 방법을 모르겠다.

/******************************* 
    CUSTOM BILLING FIELD 
*********************************/ 
add_filter('woocommerce_billing_fields', 'custom_woocommerce_billing_fields'); 

function custom_woocommerce_billing_fields($fields) 
{ 

    $fields['nif_cif'] = array(
     'label' => __('NIF/CIF', 'woocommerce'), // Add custom field label 
     'placeholder' => _x('NIF/CIF', 'placeholder', 'woocommerce'), // Add custom field placeholder 
     'required' => true, // if field is required or not 
     'clear' => false, // add clear or not 
     'type' => 'text', // add field type 
     'class' => array('my-css') // add class name 
    ); 

    return $fields; 
} 

답변

0

'woocommerce_billing_fields'후크를 통해 추가 필드를 추가하는 것만으로는 충분하지 않습니다. 너는 두 가지를 놓치고있다.

    위해 에서
  1. 저장 데이터가 후크 여기
+0

woocommerce_checkout_order_processed를 사용하는 방법을 보여 줄 수 있습니까? – JPashs

0

'woocommerce_checkout_order_processed'를 사용 'woocommerce_after_checkout_validation'를 사용 NIF/CIF 필드 후크의

  • 적절한 검증 사용자 정의 필드를 저장하는 방법의 예입니다 :

    add_action('woocommerce_checkout_order_processed', 'prefix_save_field_on_checkout', 11, 2); 
    function checkout_order_processed_add_referral_answer($order_id, $posted) { 
        if (! isset($_POST['nif_cif'])) { 
         return; 
        } 
    
        $order = wc_get_order($order_id); 
    
        // WC < 3.0 
        update_post_meta($order->id, 'order_meta_field_name', wc_clean($_POST['nif_cif'])); 
    
        // WC > 3.0 
        $order->add_meta_data('order_meta_field_name', wc_clean($_POST['nif_cif']), true); 
        $order->save(); 
    } 
    
  • +0

    고마워, 나는 그것을 시험해 볼 것이다. 함수의 이름은 'checkout_order_processed_add_referral_answer'대신 'prefix_save_field_on_checkout'이되어야합니까? – JPashs

    관련 문제