我修改了默认Wordpress注册页面,以包括角色和付款字段。我在我的网站上添加了一个需要付费的黄金会员功能。
我希望在这个用户付款并获得批准后,他会被重定向回主页。我正在使用registration\\u errors过滤器来实现这一点。这不起作用,而是将用户重定向回wp登录页面,并在顶部显示一条成功消息。
此外,wp\\u update\\u user功能也不工作;用户以默认角色-Subscriber添加到db中。如何在此处传递user\\u id?或者,我应该在其他地方这样做。
function process_payment($errors, $sanitized_user_login, $user_email) {
if ( $errors->get_error_code() ) return $errors;
global $tran;
if($tran->Process()) {
$approved = $tran->authcode;
add_filter(\'registration_redirect\', \'gold_login_redirect\');
wp_update_user( array (\'ID\' => $user_id, \'role\' => \'gold_member\') ) ;
} else {
$errors->add( \'fidelipay_response\', __(\'<strong>Declined</strong>:\'. $tran->result . \'<br/>\' . $tran->error . \'<br/>\' . $tran->cvv2_result . \'<br/>\' ,\'mysite.com\') );
if($tran->curlerror) {
$errors->add( \'fidelipay_response\', __(\'<strong>Reason</strong>:\' . $tran->curlerror, \'mysite.com\'));
return $errors;
}
return $errors;
}
return $errors;
}
add_filter(\'registration_errors\', \'process_payment\', 10, 3);
function gold_login_redirect() {
return home_url(\'?role=gold_member\');
}