私のチェックアウトページに新しいセクションを作成し、ユーザーから重要な情報を収集し、この情報を私たちのオーダーに送信される標準の電子メールに追加する必要があります達成チーム。用テンプレートフックページ内するとwoocommerce_form_field()は指定したフィールドをレンダリングしません
<div class="col2-set group">
<div class="col col-1">
<?php do_action('ni_card_form') ?>
</div>
</div>
:
まず、私はそうのようにチェックアウトフォームページ内で自分のフックを作成します。ここでは
は私がしようとしてるものですチェックアウトページ私はページに作成したテンプレートをレンダリングするこのフックに関数をドロップします:フックによって呼び出される関数。
function render_card_form() {
echo '
<div class="group postpaid-card">
<h3>PostPaid Recurring Billing</h3>
<div class="my-input-field">
<small class="card-type"></small>
' .
woocommerce_form_field('c_card', array(
'type' => 'text',
'class' => array('c_card', 'input-text'),
'label' => __('Card Number:'),
'placeholder' => "XA-12-3456-7817",
'required' => true
))
. '
<p class="c-error"></p>
</div>
<div class="my-input-field">
<div class="col2-set group">
<div class="col c-half c-first">
' .
woocommerce_form_field('c_date', array(
'type' => 'text',
'class' => array('c_date', 'input-text'),
'label' => __('Exp. Date:'),
'placeholder' => "MM/YY",
'required' => true
))
. '
</div>
</div>
</div>';
}
通常のHTML入力フィールドでwooCommerce関数を置き換えると、適切な場所にレンダリングされます。しかし、それらのフィールドを作成するためにそれらのwooCommerce関数を使用しているので、動作しません。代わりに、これらのフィールドをページの別のセクションに追加します。
どうしてですか?
oneのようなチュートリアルを見てから、それらの入力をHTML内でレンダリングすることが可能であるようです。確かに、彼はフックを使ってテンプレートをどこかに置いていますが(ノートの後ろ)、テンプレートを全体としてレンダリングしているので、入力を別の場所に描画しません。
どうしてですか?