WordPress добавить поле к оформлению заказа, не может добавить мета пользователя к значению - PullRequest
0 голосов
/ 26 октября 2018

Я пытаюсь добавить дополнительное поле формы к извлечению из woocommerce и заполнить его существующим пользовательским мета-значением, если оно существует, но я не могу получить атрибут value для рендеринга.

$ user_meta_billing_licence_number отслеживает журнал ошибок, и он будет отображаться в метке, если я добавлю ее в метку, и в метку-заполнитель, если я добавлю ее в метку-заполнитель, но не в атрибут значения.Что я делаю не так?

add_filter('woocommerce_billing_fields', 'custom_billing_fields', 20 );
function custom_billing_fields( $fields ) {
    // Add license field.
    $user_id = get_current_user_id();
    $user_meta_billing_licence_number = (string)get_user_meta( $user_id, 'billing_licence_number', true );
    error_log('debug: line 117: billing_licence_number = '.$user_meta_billing_licence_number);
    $fields['billing_licence_number'] = array(
        'label'     => __('License Number (for use on certificates)', 'woocommerce'),
        'required'  => false,
        'class'     => array('form-row-wide'),
        'clear'     => true,
        'placeholder' => 'Recommended format: MA12345'.$user_meta_billing_licence_number,
        'value'     => $user_meta_billing_licence_number
    );
    return $fields;
}

1 Ответ

0 голосов
/ 26 октября 2018

Итак ... похоже, вы не можете передать значение через этот фильтр.Вы должны перехватить его позже и переопределить выборку значений во время печати полей:

<?php foreach ( $checkout->checkout_fields['billing'] as $key => $field ) : ?>

    <?php

        if($key == 'billing_licence_number') {
            $uID = get_current_user_id();
            woocommerce_form_field( $key, $field, get_user_meta($uID, 'billing_licence_number', true));
        } else {
            woocommerce_form_field( $key, $field, $checkout->get_value( $key ) );
        }

    ?>

<?php endforeach; ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...