Poniżej wiersz kodu znajduje się w woocommerce/includes/class-wc-form-handler.php
linii nr 905.
wp_redirect(apply_filters('woocommerce_registration_redirect', $redirect));
ja sprostowanie odpowiedź udzieloną przez @ user3518270
Poniższa linia nie będzie działać, ponieważ jest filtrem używanym przez woocommerce. Więc musisz użyć add_filter() zamiast 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);
'wp_redirect (apply_filters ('woocommerce_registration_redirect', $ przekierowanie));' Ta linia kodu dostałem od 'woocommerce/includes/klasa-wc-form-handler.php' linia nr 905. Właśnie zaskoczony twoją odpowiedzią. Jak korzystać z add_action –
@MakarandMane - podczas gdy jest technicznie poprawne, że powinno to używać add_filter, add_action nadal będzie działał. add_action to w zasadzie wrapper dla add_filter - wywołuje on add_filter i zwraca wynik. Dlatego ta odpowiedź nadal działałaby, mimo że zastosowano additive. Niezależnie od tego, przy tak małej zmianie lepiej byłoby edytować odpowiedź, niż zastosować zupełnie nową, z wyjątkiem tego jednego drobnego szczegółu. – butlerblog