2017-10-13 9 views
2

チェックアウトでカスタムフィールドを追加する方法非表示のタイプとデフォルト値を使用したWoocommerce?woocommerceの既定値を使用してカスタム隠しチェックアウトフィールドを追加します。

私のコードの下に確認してください。

function pord_checkout_fields($fields) { 
    $fields['billing']['quickbook'] = array(
     'type' => 'hidden', 
     'label'  => __('Purchase Order Number', 'woocommerce'), 
     'placeholder' => _x('Purchase Order Number', 'placeholder', 'woocommerce'), 
     'required' => false, 
     'class'  => array('form-row-wide'), 
     'clear'  => true 
    ); 

    return $fields; 
} 
add_filter('woocommerce_checkout_fields','pord_checkout_fields'); 

答えて

2

隠しタイプはwoocommerceフォームフィールドのために買うのデフォルトは存在しません...しかし、あなたはそれを作成することができます。

  • 最初の関数は、その隠しフィールドの種類を作成します。
  • 第二の機能は、第三の機能は、ここでオーダー編集ページに

をこの値が表示されます(あなたが値を設定します)、この隠されたカスタムフィールド

  • を追加するコードです:

    // Create hidden checkout field type 
    add_filter('woocommerce_form_field_hidden', 'create_checkout_hidden_field_type', 5, 4); 
    function create_checkout_hidden_field_type($field, $key, $args, $value){ 
        return '<input type="hidden" name="'.esc_attr($key).'" id="'.esc_attr($args['id']).'" value="'.esc_attr($args['default']).'" />'; 
    } 
    
    // Add custom hidden billing checkout field 
    add_filter('woocommerce_checkout_fields', 'custom_billing_fields'); 
    function custom_billing_fields($fields){ 
    
        ## HERE set the value (for this hidden checkout field) 
        $value = "The value"; 
    
        $fields['billing']['billing_quickbook'] = array(
         'type' => 'hidden', 
         'label'  => __('Purchase Order Number', 'woocommerce'), 
         'placeholder' => _x('Purchase Order Number', 'placeholder', 'woocommerce'), 
         'required' => false, 
         'class'  => array('form-row-wide'), 
         'clear'  => true, 
         'default' => $value, // The custom field value 
        ); 
        return $fields; 
    } 
    
    // Display the field value on the admin order edit page (after billing address) 
    add_action('woocommerce_admin_order_data_after_billing_address', 'display_custom_field_in_admin_order_meta', 10, 1); 
    function display_custom_field_in_admin_order_meta($order){ 
        echo '<p><strong>'.__('Quickbook').':</strong> ' . get_post_meta($order->get_id(), '_billing_quickbook', true) . '</p>'; 
    } 
    

    コードは、アクティブな子テーマ(またはテーマ)のfunction.phpファイル、またはすべてのプラグインファイルにあります。

    USAGE(VALUEを取得する)

    注文ID $order_idから値を取得するには(必要な場合)、あなたはをを使用します。

    $value = get_post_meta($order_id, '_billing_quickbook', true); 
    

    このコードはWooCommerce 3以降で動作確認されています。


    公式開発者ドキュメント:Customizing checkout fields using actions and filters

  • 0
    // 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) { 
        $fields['order']['order_comments']['placeholder'] = 'My new placeholder'; 
        $fields['order']['order_comments']['label'] = 'My new label'; 
        return $fields; 
    } 
    
    関連する問題