Php 在将添加到购物车之前执行一段代码
客户注册后,管理员将验证其身份并激活该客户。为了维护客户验证状态,我在Php 在将添加到购物车之前执行一段代码,php,wordpress,woocommerce,product,hook-woocommerce,Php,Wordpress,Woocommerce,Product,Hook Woocommerce,客户注册后,管理员将验证其身份并激活该客户。为了维护客户验证状态,我在wp\u usermeta表中使用IsVerified作为1 现在,若客户将产品添加到他的购物车中,我想检查客户是否经过验证。如果验证,那么我只需要实际的购物车流程。如果客户未经验证,则我希望重定向他/她以上载指定的文档,购物车功能无需工作。如果没有登录,需要将他重定向到登录页面 我是woocommerce和wordpress的新手,所以如果有任何例子,都很容易理解 更新代码如下: add_action('woocommerc
wp\u usermeta
表中使用IsVerified
作为1
现在,若客户将产品添加到他的购物车中,我想检查客户是否经过验证。如果验证,那么我只需要实际的购物车流程。如果客户未经验证,则我希望重定向他/她以上载指定的文档,购物车功能无需工作。如果没有登录,需要将他重定向到登录页面
我是woocommerce和wordpress的新手,所以如果有任何例子,都很容易理解
更新代码如下:
add_action('woocommerce_add_to_cart', 'custome_add_to_cart');
function custome_add_to_cart() {
$userId=get_current_user_id();
if($userId>0) {
$UserROW = get_user_meta($userId);
if( $UserROW['woo_VerifyStatus'][0] == 0 ) {
wp_redirect( get_home_url().'/gld/my-account');
} else {
//Normal cart functionality
}
} else {
wp_redirect( get_home_url().'/gld/my-account');
}
}
add_action( 'action_name', 'your_function_name' );
function your_function_name() {
// Your code
}
您应按如下方式使用挂钩:
add_action('woocommerce_add_to_cart', 'custome_add_to_cart');
function custome_add_to_cart() {
$userId=get_current_user_id();
if($userId>0) {
$UserROW = get_user_meta($userId);
if( $UserROW['woo_VerifyStatus'][0] == 0 ) {
wp_redirect( get_home_url().'/gld/my-account');
} else {
//Normal cart functionality
}
} else {
wp_redirect( get_home_url().'/gld/my-account');
}
}
add_action( 'action_name', 'your_function_name' );
function your_function_name() {
// Your code
}
例如,对于您的问题,您应该使用与belw相同的代码:
add_action('woocommerce_add_to_cart', 'custome_add_to_cart');
function custome_add_to_cart() {
// Your code
}
无法以简单的方式在添加到购物车之前进行重定向,但您可以使用
woocommerce\u add\u to\u cart\u validation
钩子来避免添加到购物车,并通过链接到特定验证页面的按钮显示自定义通知
检查代码中验证状态的正确meta\u键是否为'woo\u VerifyStatus'
守则:
add_action( 'woocommerce_add_to_cart_validation', 'custome_add_to_cart_validation', 10, 1 );
function custome_add_to_cart_validation( $passed ){
// When user is logged in in we get his verified status
if( is_user_logged_in() )
// Get user 'woo_VerifyStatus' postmeta value
$verified_user = get_user_meta( get_current_user_id(), 'woo_VerifyStatus', true );
// When user is not logged in we avoid add to cart and display a custom message
if( ! is_user_logged_in() ){
$message = __( "Please, you need to be registered and a verified user.", "woocommerce" );
$button_text = __("Login or register", "woocommerce");
$url = home_url('/gld/my-account');
$message .= ' <a href="'.$url.'" class="login-register button" style="float:right;">'.$button_text.'</a>';
$passed = false; // Set to false
$message .= ' <a href="#" class="login-register button" style="float:right;">'.$button_text.'</a>';
}
// When is not a verified user we avoid add to cart and display a custom message
elseif( $verified_user != 1 ) {
$message = __( "Please, you need to be a verified user.", "woocommerce" );
$button_text = __("proceed", "woocommerce");
$url = home_url('/gld/my-account');
$message .= ' <a href="'.$url.'" class="login-register button" style="float:right;">'.$button_text.'</a>';
$passed = false; // Set to false
}
if( ! $passed )
wc_add_notice( $message, 'error' );
return $passed;
}
add_动作('woocommerce_add_to_cart_validation'、'custome_add_to_cart_validation',10,1);
函数custome\u add\u to\u cart\u验证($passed){
//当用户登录时,我们将获得其已验证状态
如果(用户是否已登录)
//获取用户“woo_VerifyStatus”后预测值
$verified_user=get_user_meta(get_current_user_id(),'woo_VerifyStatus',true);
//当用户未登录时,我们会避免添加到购物车并显示自定义消息
如果(!用户是否已登录()){
$message=_uuuu(“请,您需要注册和验证用户。”,“woocommerce”);
$button_text=uuuuuuuuuuuuuuuuuuuu(“登录或注册”,“woocommerce”);
$url=home_url('/gld/my account');
$message.='';
$passed=false;//设置为false
$message.='';
}
//当用户未经验证时,我们会避免添加到购物车并显示自定义消息
elseif($verified_user!=1){
$message=_uuuuuuuuuuuuuuuuuuu(“请,您需要是一个经过验证的用户。”,“woocommerce”);
$button_text=uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu;
$url=home_url('/gld/my account');
$message.='';
$passed=false;//设置为false
}
如果(!$通过)
wc_添加_通知($message,'error');
返回$passed;
}
代码进入活动子主题(或活动主题)的function.php文件
它应该可以工作。尝试使用过滤器woocommerce\u add\u to\u cart\u product\u id
,该过滤器在此处定义:正如您所说,我已经更新了代码。你能检查一下吗。