Почему мое значение (из пользовательских полей) переопределяется старым значением (из указанных полей)? - PullRequest
1 голос
/ 12 июня 2019

Я пытаюсь, чтобы значение из 2 настраиваемых полей, которые пользователь вводил через «Моя учетная запись / Изменить адрес», отображалось в тех же настраиваемых полях, но при оформлении заказа, сейчас оно переопределяется старыми (входными) значениями, даже еслиполе (видимое через инспектор браузера) имеет новое значение.Как мне это остановить?

Я довольно новичок в woocommerce, создании плагинов и WordPress.Сейчас я не особо старался, чтобы что-то имело значение (поместил код в другом порядке, изменил приоритеты, изменил имена ... Как вы видите, я действительно не знаю, что делаю).

Вот как я сделал поля:

add_filter( 'woocommerce_checkout_fields' , 'plugin_add_custom_billing_fields' );
function plugin_add_custom_billing_fields($fields) {
    $fields['billing']['billing_org_number'] = array(
        'label'     => __('Organisationsnummer', 'woocommerce'),
        'placeholder'   => __('T.ex. 1234-5678', 'woocommerce'),
        'required'  => true,
        'class'     => array('form-row-wide'),
        'clear'     => true,
    );

    $fields['billing']['billing_org_reference'] = array(
        'label'     => __('Kostnadsställe/referens', 'woocommerce'),
        'placeholder'   => __('T.ex. Per Olofsson', 'woocommerce'),
        'required'  => true,
        'class'     => array('form-row-wide'),
        'clear'     => true,
    );

    return $fields;
}

Вот как я сохраняю поля:

function reigel_woocommerce_checkout_update_user_meta( $customer_id, $posted ) {
    var_dump($customer_id, $posted);
    if (isset($posted['billing_org_number'])) {
        $dob = sanitize_text_field( $posted['billing_org_number'] );
        update_user_meta( $customer_id, 'billing_org_number', $dob);
    }

    if (isset($posted['billing_org_reference'])) {
        $dob = sanitize_text_field( $posted['billing_org_reference'] );
        update_user_meta( $customer_id, 'billing_org_reference', $dob);
    }
}
add_action( 'woocommerce_update_user_meta', 'reigel_woocommerce_checkout_update_user_meta', 10, 2 ); 

Как видите, я раньше искал в StackOverflowи получил некоторую помощь от Рейгеля!Скажите, если вам нужен еще какой-нибудь код.

Результаты, которые я хочу: мое значение (из базы данных) будет отображаться в «Оформлении заказа» после редактирования в «Моя учетная запись / Изменить адрес».

Фактические результаты:Старое значение отображается в «Оформлении заказа», новое - в «Моя учетная запись / Редактировать адрес».

РЕДАКТИРОВАТЬ: Похоже, что плагин для Klarna Checkout портит сессии.

РЕДАКТИРОВАТЬ 2: Да, это была Кларна.Я расскажу об этой проблеме позже, потому что команда обсудила и решила вместо этого удалить плагин.

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