// Disable email field in checkout for guest users
add_action('woocommerce_checkout_init', 'disable_guest_email_field');
function disable_guest_email_field() {
if (!is_user_logged_in()) {
add_filter('woocommerce_checkout_fields', 'remove_guest_email_field');
}
}
function remove_guest_email_field($fields) {
unset($fields['billing']['billing_email']);
return $fields;
}
// Create username based on phone number for guest users
add_filter('woocommerce_new_customer_data', 'set_username_by_phone', 10, 1);
function set_username_by_phone($new_customer_data) {
if (!is_user_logged_in() && isset($_POST['billing_phone'])) {
$phone = $_POST['billing_phone'];
$new_customer_data['user_login'] = sanitize_user($phone);
}
return $new_customer_data;
}
1条答案
按热度按时间flvtvl501#
要在WooCommerce的账单结账部分禁用电子邮件字段,并根据访客用户的电话号码创建用户名,您可以在主题的functions.php文件或自定义插件中使用挂钩和过滤器的组合。以下是实现此目标的分步指南:
1.打开主题的functions.php文件或创建自定义插件文件。
1.添加以下代码以禁用电子邮件字段并修改用户名创建过程:
使用此代码,电子邮件字段将从客人用户的结帐页面中删除,用户名将根据账单部分提供的电话号码生成。请注意,此代码假定结帐表单中的电话字段名称为'billing_phone'。如有必要,调整字段名称。
请确保彻底测试功能,以确保它在WooCommerce设置中按预期工作。