Как добавить заголовок выше woocommerce-account-fields в Woocommerce

преамбула

Мой вопрос очень похож на вопрос, заданный здесь . Ответ, я подозреваю, тоже будет очень похож на тот, который есть здесь .

сценарий

На странице проверки отображаются типичные поля Биллинг. Ниже 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' .