WooCommerce добавить заголовок в начале пользовательских полей - PullRequest
0 голосов
/ 17 мая 2018

Я создал настраиваемые поля в моей форме оплаты на странице оформления заказа WooCommerce.Все работает нормально, но я пытаюсь добавить элемент h3 с текстом между ними.Поэтому, в основном, я запрашиваю некоторую дополнительную информацию в форме для выставления счетов, но хочу указать это.

Я пытался динамически создать h3 с помощью Javascript / jQuery и вставить перед конкретным идентификатором, который я хочу, чтобы он был,Но это не сработало, как мне понравилось, и у меня есть решение на стороне сервера.

Заранее спасибо!

Вот функция, в которой я определяю свои настраиваемые поля.Я попробовал эхо в начале, но в итоге оно отображается вверху всей формы.

// Modify billing fields

add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );

function custom_override_checkout_fields( $fields ) {

    unset($fields['billing']['billing_phone']);
    unset($fields['billing']['billing_email']);

    //echo '<h3>Wie is de verzender?</h3>';

    $fields['billing']['name_sender'] = array(
          'label' => __('Uw naam', 'woocommerce'),
          'required' => true,
          'class' => array('form-row-wide'),
          'clear' => true
    );
    $fields['billing']['email_sender'] = array(
          'label' => __('Uw email', 'woocommerce'),
          'required' => true,
          'class' => array('form-row-wide'),
          'clear' => true
    );
    $fields['billing']['phone_sender'] = array(
          'label' => __('Uw telefoonnummer', 'woocommerce'),
          'required' => true,
          'class' => array('form-row-wide'),
          'clear' => true
    );
    $fields['billing']['anoniem'] = array(
          'label' => __('Anoniem verzenden?', 'woocommerce'),
          'type' => 'checkbox',
          'class' => array('form-row-wide'),
          'clear' => true
    );

    return $fields;
}

Визуальное объяснение:

Визуальное объяснение

1 Ответ

0 голосов
/ 25 мая 2018

Вы можете подключиться к фильтру woocommerce_form_field_<field_type>.Это позволяет нам добавлять вывод HTML для дополнительного типа поля (и в этом случае мы можем вместо этого выводить HTML для заголовка), и мы можем использовать этот новый заголовок «тип поля» при изменении полей извлечения с помощью фильтра woocommerce_checkout_fields.

// Add field type to WooCommerce form field 
add_filter( 'woocommerce_form_field_heading','sc_woocommerce_form_field_heading', 10, 4 );
function sc_woocommerce_form_field_heading($field, $key, $args, $value) {
    $output = '<h3 class="form-row form-row-wide">'.__( $args['label'], 'woocommerce' ).'</h3>';
    echo $output;
}

// Modify checkout fields
add_filter( 'woocommerce_checkout_fields','custom_override_checkout_fields' );
function custom_override_checkout_fields( $fields ) {
    $fields['billing']['billing_heading_name'] = array(
        'type'      => 'heading',
        'label'     => 'Heading here',
    );

При изменении полей с использованием фильтра woocommerce_checkout_fields теперь вы можете поместить новое поле заголовка в любую нужную вам позицию.

...