6

WooCommerceのチェックアウトページにフィールドを追加しています。基本的なテキストフィールドを追加しましたが、ドロップダウンまたはいくつかのオプションを含む選択ボックスが必要です。これまでに行ったことは次のとおりですが、どこかでエラー

$fields['billing']['billing_meat'] = array(
    'label'     => __('Food options', 'woocommerce'),
'placeholder'   => _x('', 'placeholder', 'woocommerce'),
'required'  => false,
'clear'     => false
'type'  => 'select',

'options' => array(                     // array of key => value pairs for select options
            __('I eat meat', 'woocommerce') => __('I eat mate', 'woocommerce'),
            __('meat is gross', 'woocommerce') => __('meat is gross', 'woocommerce'),

たぶん私は「タイプ」フィールドを正しく定義していませんか?

おかげで負荷

4

2 に答える 2

11

それが正確なコードである場合、問題は の後にコンマがないことです'clear' => false

私はこれをテストしましたが、動作します:

$fields['billing']['billing_meat'] = array(
    'label'       => __('Food options', 'woocommerce'),
    'placeholder' => _x('', 'placeholder', 'woocommerce'),
    'required'    => false,
    'clear'       => false,
    'type'        => 'select',
    'options'     => array(
        'eat-meat' => __('I eat maet', 'woocommerce' ),
        'not-meat' => __('Meat is gross', 'woocommerce' )
        )
    );

__()オプション配列のキーでも使用していないことに注意してください。訳さないほうがいいです。

于 2012-10-01T05:14:34.717 に答える
6

これは機能しています。これが私のコードです

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

// Our hooked in function - $fields is passed via the filter!
function dropdown( $fields ) {
     $fields['billing']['dropdown'] = array(
        'label'     => __('dropdown', 'woocommerce'),
    'placeholder'   => _x('dropdown', 'placeholder', 'woocommerce'),
    'required'  => false,
    'class'     => array('form-row-wide'),
    'clear'     => true,
    'type'      => 'select',
     'options'     => array(
        'option 1' => __('option 1', 'woocommerce' ),
        'option 2' => __('option 2', 'woocommerce' )
        )//end of options
     );

     return $fields;
}

これは機能します。しかし、値が _billing_dropdown の下に保存されていないようです。「管理列」プラグインを使用して、注文テーブル (管理側) にフィールドを追加しました。カスタム フィールドの「ドロップダウン」の下に、値が表示されません。値はどこで取得できますか? 「_billing_purpose」の下にあり、type =>「textarea」である他のカスタムフィールド「目的」にも同じことが言えます。ありがとう!

これがスクリーンショット です

于 2014-12-09T01:41:35.507 に答える