我试图验证WooCommerce注册表单中每个用户的唯一值的公司名称字段,但我遇到了麻烦:
// That's what I got, but it doesn't work...
add_action( 'woocommerce_created_customer', 'custom_billing_company_validation');
function custom__billing_company_validation( $data, $errors ) {
$billing_company = isset( $data['billing_company'] ) ? sanitize_text_field( $data['billing_company'] ) : '';
if ( ! empty( $billing_company ) ) {
global $wpdb;
$count =$wpdb->get_row("SELECT 1 FROM $wpdb->usermeta WHERE
$wpdb->usermeta.meta_key = 'billing_company' AND $wpdb->usermeta.meta_value = '$billing_company' AND $wpdb->usermeta.user_id != $user->ID");
if ( $count > 0 ) {
$errors->add( 'validation', __('The "Name Company " already exists, please contact us.') );
}
}
}
字符串
1条答案
按热度按时间6mzjoqzu1#
**更新2:**下面我使用了一个通用函数来检查是否存在一些用户元数据。在现有代码中添加此函数:
字符串
然后从显示或隐藏WooCommerce注册字段基于选定的字段值答案代码,替换
account_registration_field_validation()
函数如下:型
代码放在你的子主题的functions.php文件中(或插件中)。测试和工作。
的数据