当人们通过销售电子邮件中的链接以电子邮件和姓名作为参数进入我的 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;
} …Run Code Online (Sandbox Code Playgroud)