php - 对于返回客户隐藏或获取电子邮件以在 WooCommerce 结帐页面上添加“重复电子邮件地址”
问题描述
我在 WooCommerce 结帐页面上添加了一个重复电子邮件地址字段,并具有以下添加功能:
// EMAIL Confirmation on CHECKOUT PAGE
add_filter( 'woocommerce_checkout_fields' , 'email_verification_field_checkout' );
function email_verification_field_checkout( $fields ) {
$fields['billing']['billing_email']['class'] = array('form-row-first');
$fields['billing']['billing_email_verification'] = array(
'label' => __('Repeat Email Adress', 'woocommerce'),
'required' => true,
'class' => array('form-row-last'),
'clear' => true,
'priority' => 999,
);
return $fields;
}
// CHECK IF THE TWO EMAILS MATCH !!!
add_action('woocommerce_checkout_process', 'mycheck_email_addresses');
function mycheck_email_addresses() {
$email1 = $_POST['billing_email'];
$email2 = $_POST['billing_email_verification'];
if ( $email2 !== $email1 ) {
wc_add_notice( __( 'Your email addresses don't match!', 'woocommerce' ), 'error' );
}
}
回头客可以在页面顶部登录。WooCommerce 然后获取提交的“billing_email”地址的电子邮件地址。
1)有没有办法为添加的“billing_email_verification”字段添加一个功能来做同样的事情?
2) 我为回头客在结帐页面上登录的情况尝试了添加功能:在这种情况下,我希望隐藏“重复电子邮件地址”字段以获得更好的客户体验。但不幸的是,这并没有奏效。我刚刚开始了解过滤器和钩子,希望能得到帮助:)
add_filter( 'woocommerce_checkout_fields' , 'my_override_checkout_fields' );
function my_override_checkout_fields( $fields ) {
if( is_user_logged_in() ){
unset($fields['billing']);
$fields['billing_email_verification'] = array();
}
return $fields;
}
解决方案
我在案例 2 的解决方案中发现了错误)这是案例 2 的正确过滤器)
add_filter( 'woocommerce_checkout_fields' , 'my_override_checkout_fields' );
function my_override_checkout_fields( $fields ) {
if( is_user_logged_in() ){
unset($fields['billing']['billing_email_verification']);
}
return $fields;
}
无论如何,我很想了解如何使用 get_value 处理案例 1) 有人知道该怎么做吗?
推荐阅读
- javascript - 在此服务器上未找到请求的 URL /about-us
- flutter - 为什么要出售此消息,setState() 或 markNeedsBuild() 在构建 obx Getx 期间调用
- php - laravel 队列作业,调度两个参数
- firebase - 无法在flutter中访问Firebase Firestore doc的字段
- flutter - FocusScope.of(context!).unfocus() 没有足够快地触发 Focus 小部件的 onFocusChange;
- android - 像what'app这样的聊天应用程序中的未读消息计数
- robotframework - 获取 InvalidElementStateException:消息:无效元素状态
- r - 合并具有不同年龄形式的两个数据框
- sql - Oracle APEX 应用程序流程 > 在计算/验证之前提交时在交互式网格上不起作用
- karate - karate - 如何在 karate-config.js 中输入电子邮件 ID 数组并在 java 文件中使用它