Когда люди заходят в мой магазин woocommerce по ссылке в электронном письме с указанием адреса электронной почты и имени в качестве параметров, я хотел бы предварительно указать имя и адрес электронной почты на странице оформления заказа.
Поэтому я создал действие и фильтр,Это работает, как и ожидалось, но только если я делаю жесткое обновление на странице продаж (ctrl + f5)
Я исключил страницу продаж и страницу оформления заказа из кеша и кеша лаков, но это не исправилопроблема.
Я что-то здесь упускаю?У вас есть идеи, почему это работает только с жестким обновлением?
Любая помощь очень ценится.
Код:
function save()
{
if ( is_page( 'sales-page' ) )
{
if ( isset( $_GET['tu_em'] ) ) {
global $woocommerce;
$woocommerce->session->set( 'tu_em', $_GET['tu_em'] );
}
if ( isset( $_GET['tu_name'] ) ) {
global $woocommerce;
$woocommerce->session->set( 'tu_name', $_GET['tu_name'] );
}
}
}
add_action( 'wp_enqueue_scripts', 'save_email' , 1100);
function override_checkout_email_field( $fields ) {
global $woocommerce;
$email = $woocommerce->session->get('tu_em');
if(!is_null($email)) {
$fields['billing']['billing_email']['default'] = $email;
}
$name = $woocommerce->session->get('tu_name');
if(!is_null($name)) {
$fields['billing']['billing_first_name']['default'] = $name;
}
return $fields;
}
add_filter( 'woocommerce_checkout_fields' , 'override_checkout_email_field' );