Я пытаюсь, чтобы значение из 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: Да, это была Кларна.Я расскажу об этой проблеме позже, потому что команда обсудила и решила вместо этого удалить плагин.