Мой вопрос очень похож на вопрос, заданный здесь . Ответ, я подозреваю, тоже будет очень похож на тот, который есть здесь .
На странице проверки отображаются типичные поля Биллинг. Ниже woocommerce-account-fields
класса woocommerce-account-fields
div-класса, в которых woocommerce-account-fields
div-класса. Форма, вложенная в нее, имеет два поля: account_username
и account_password
.
Я хочу подключиться к этому и отобразить заголовок под последним полем фактуры ( billing_email
) и над полем account_username
.
Читая вышеупомянутый вопрос и ответ, я решил, что смогу сделать что-то вроде этого:
add_action( 'woocommerce_form_field_text','XYZ_checkout_custom_heading', 10, 2 ); function XYZ_checkout_custom_heading( $field, $key ){ if ( is_checkout() && ( $key == 'billing_email') ) { $field .= '<div id="add_custom_heading"><h3>' . __('MY CUSTOM HEADING') . '</h3></div>'; } return $field; }
Но результат этого не меняется на странице. Однако, если я использую key == 'account_username
он работает, за исключением того, что заголовок попадает не в то место (ниже поля имени пользователя учетной записи, а не над ним).
Вот скриншот из того, что я имею в виду, визуально.
Если я правильно понял, это место находится над областью «создать учетную запись».
Если это так, вы можете использовать action hook woocommerce_before_checkout_registration_form
add_action( 'woocommerce_before_checkout_registration_form','XYZ_checkout_custom_heading'); function XYZ_checkout_custom_heading( ){ echo '<div id="add_custom_heading"><h3>' . __('MY CUSTOM HEADING') . '</h3></div>'; }
Вы все равно можете использовать woocommerce_form_field_text
но не использовать $field .= <heading>
. Но вместо этого используйте $field = <heading> . $field
$field = <heading> . $field
. Таким образом, ваш заголовок добавляется вверху. Не внизу. Это как field + heading
когда вы делаете $field .= <heading>
но heading + field
с $field = <heading> . $field
$field = <heading> . $field
add_action( 'woocommerce_form_field_text','XYZ_checkout_custom_heading', 10, 2 ); function XYZ_checkout_custom_heading( $field, $key ){ if ( is_checkout() && ( $key == 'account_username') ) { $field = '<div id="add_custom_heading"><h3>' . __('MY CUSTOM HEADING') . '</h3></div>' . $field; } return $field; }
также обратите внимание на $key == 'account_username'
.