2017-01-04 13 views
1

woocommerceのチェックアウトページでカスタム選択オプションを追加しようとしています。余分なフィールドを追加していますが、selectオプションの値に日付を追加します。woocommerceのチェックアウトページのカスタムフィールドに日付を追加する

解決方法はありますか?これが後にあなたをできるようになります

add_action('woocommerce_after_order_notes', 'my_custom_checkout_field'); 

function my_custom_checkout_field($checkout) { 
    echo '<div id="my_custom_checkout_field"><h2>' . __('My Field') . '</h2>'; 

    $today = strtotime('today'); 
    $tomorrow = strtotime('tomorrow'); 
    $dayAfterTomorrow = strtotime('+2 days'); 

    woocommerce_form_field('my_field_name', array(
     'type'   => 'select', 
     'class'   => array('my-field-class form-row-wide'), 
     'label'   => __('Fill in this field'), 
     'placeholder' => __(''), 
     'options'  => array(
      date('yyyy-mm-dd', $today) => date(get_option('date_format'), $today), 
      date('yyyy-mm-dd', $tomorrow) => date(get_option('date_format'), $tomorrow), 
      date('yyyy-mm-dd', $dayAfterTomorrow) => date(get_option('date_format'), $dayAfterTomorrow), 
     ))); 
    echo '</div>'; 
} 

を:ここで

は私がdate()を使用し

$today = new DateTime(); 
$tomorrow = new DateTime(); 
$tomorrow->modify('+1 day'); 
$dayAfterTomorrow = new DateTime(); 
$dayAfterTomorrow->modify('+2 day'); 

add_action('woocommerce_after_order_notes', 'my_custom_checkout_field'); 

function my_custom_checkout_field($checkout) { 
    echo '<div id="my_custom_checkout_field"><h2>' . __('My Field') . '</h2>'; 

    woocommerce_form_field('my_field_name', array(
     'type'   => 'select', 
     'class'   => array('my-field-class form-row-wide'), 
     'label'   => __('Fill in this field'), 
     'placeholder' => __(''), 
     'options'  => array(
      'Today' => __("This should be today's date"), 
      'Tomorrow' => __('This should be tomorrow date'), 
      'Day After Tomorrow' => __('This should be Day After Tomorrow Date') 
     )), $checkout->get_value('my_field_name')); 
    echo '</div>'; 
} 
+0

詳しいことができますか?あなたが何を求めているのかよく分かりません。あなたが投稿したコードの何が間違っていますか? – helgatheviking

+0

オプションの値「今日」を今日の日付にします。 – Sariful

+0

さて、 'options'配列に日付を入れる必要があります。 'キー'は*現在* "今日"です...これはおそらくあなたがDBに保存するもので、配列の値はページに表示されるものです。 '[date()'](http://php.net/manual/en/function.date.php)関数も参照してください。 – helgatheviking

答えて

1

function.php私のテーマで追加したコードであり、strtotime()次のようにoptionsを設定することができますYYYY-MM-DDのような保存日に役に立つと思うチュートリアルをcustomizing the checkout fieldsに書いています。

関連する問題