Sotto riga di codice si trova a woocommerce/includes/class-wc-form-handler.php
linea n ° 905.
wp_redirect(apply_filters('woocommerce_registration_redirect', $redirect));
ho correggere risposta data da @ user3518270
La riga inferiore non funziona in quanto è un filtro usato da woocommerce Quindi è necessario utilizzare add_filter() invece di add_action()
add_action('woocommerce_registration_redirect', 'user_autologout', 2);
/* Stop auto login */
function user_autologout(){
if (is_user_logged_in()) {
$current_user = wp_get_current_user();
$user_id = $current_user->ID;
$approved_status = get_user_meta($user_id, 'wp-approve-user', true);
//if the user hasn't been approved yet by WP Approve User plugin, destroy the cookie to kill the session and log them out
if ($approved_status == 1){
return $redirect_url;
}
else{
wp_logout();
return get_permalink(woocommerce_get_page_id('myaccount')) . "?approved=false";
}
}
}
add_filter('woocommerce_registration_redirect', 'user_autologout', 2);
function registration_message(){
$not_approved_message = '<p class="registration">Send in your registration application today!<br /> NOTE: Your account will be held for moderation and you will be unable to login until it is approved.</p>';
if(isset($_REQUEST['approved'])){
$approved = $_REQUEST['approved'];
if ($approved == 'false') echo '<p class="registration successful">Registration successful! You will be notified upon approval of your account.</p>';
else echo $not_approved_message;
}
else echo $not_approved_message;
}
add_action('woocommerce_before_customer_login_form', 'registration_message', 2);
fonte
2014-12-16 16:09:16
'wp_redirect (apply_filters ('woocommerce_registration_redirect', $ redirect));' Questa riga di codice che ho ricevuto da 'woocommerce/include/classe-wc-form-handler.php' linea n ° 905. ho appena sorpreso con la tua risposta. Come si può usare add_action –
@MakarandMane - mentre è tecnicamente corretto che questo dovrebbe usare add_filter, add_action funzionerà ancora. add_action è essenzialmente un wrapper per add_filter - chiama add_filter e restituisce il risultato. Ecco perché questa risposta funzionerebbe anche se fosse stato utilizzato add_action. Indipendentemente da ciò, per una modifica così piccola sarebbe meglio modificare la risposta piuttosto che applicarne una completamente nuova che è esattamente la stessa eccetto per quel particolare minore. – butlerblog