Hello,
Sorry for my english 🙁
I want to do a registration form with ACF Pro on my site.
My Functions.php :
add_filter('acf/save_post' , 'new_user_acf', 10, 1 );
function new_user_acf(){
$created = false;
$data['login'] = $_POST["acf"]["field_5775904370cdf"];
$data['email'] = $_POST["acf"]["field_5775908e70ce0"];
$data['usr_password'] = $_POST["acf"]["field_577590b370ce1"];
$data['confirm_password'] = $_POST["acf"]["field_577591f642e56"];
$data['optin'] = $_POST["acf"]["field_577598009fbd3"];
if($data['optin'] == "Oui"){
$data['optin'] = 1;
}else{
$data['optin'] = 0;
}
if ($data['usr_password'] === $data['confirm_password']) {
if (!username_exists($data['login'])) {
if(email_exists($data['email']) === false){
$created = true;
$user_id = wp_create_user($data['login'], $data['usr_password'], $data['email']);
} else {
$msg = __("Un compte utilisateur existe déjà avec cette adresse e-mail.", "wikoandco");
}
} else {
$msg = __('Ce nom d\'utilisateur est déjà utilisé', "wikoandco");
}
}else{
$msg = __("Oups, votre mot de passe et sa confirmation sont différents", "wikoandco");
}
if($created === true){
$user = new WP_User($user_id);
$user->set_role('contributor');
if(!wp_mail($data['email'], __("Bienvenue sur Wiko And Co'", "wikoandco"), __('Your password is:'. $usr_password, 'wikoandco'))){
$msg .= "fail send";
}
if($data['optin']){
if(wp_mail("[email protected]", 'Nouvelle suscription e-mail', 'Un nouveau membre souhaite être ajouté à la newsletter :'.$email.' / '.$login)){
$msg = __("Inscription réussie mais votre inscription à la newsletter n'a pas pu être prise en compte. Vous pouvez souscrire à tout moment via votre espace membre.", "wikoandco");
}else{
$msg = __("Inscription réussie, bienvenue ! Vous pouvez dès à présent vous connecter", "wikoandco");
}
}else{
$msg = __("Inscription réussie, bienvenue ! Vous pouvez dès à présent vous connecter", "wikoandco");
}
}
return $msg;
}
I want get my $msg to show the message (error or success and if error : why)
My registration page :
acf_form_head();
[...]
<p id="register_zone">
<?php
$options = array(
'post_id' => 'new_post',
'field_groups' => array( 141349 ),
'form' => true,
'submit_value' => __("Je m'inscris", "wikoandco"),
'return' => '',
'form_attributes' => array(
'id' => 'subscrib_form',
'name' => 'fm_acf',
'class' => '',
'action' => '',
'method' => 'post',
),
);
acf_form($options); ?>
</p>
If i do a die($msg), it’s good so my function is great. But how displayed my var $msg on my front ?
Thanks a lot
Regards
Hi @triixx
I’m afraid you can’t pass the message from the acf/save_post
hook. What you can do is to create a list of error codes and then use the wp_redirect() function to add the parameters to the URL so it becomes something like this:
http://example.com/register/?success=false&error=1
Then you can check the error code and show it on the front end like this:
if( $_GET['success'] == 'false' && $_GET['error'] = '1' ) {
echo "Error message code 1";
}
If you want, you can also use the cookie to pass the message. This page should give you more idea about it: http://www.w3schools.com/php/php_cookies.asp.
I hope this helps 🙂
Hi James,
Thanks 🙂
It’s a great possibility but how i can put this data in my URL ? The redirection is done on the acf_form().
Regards
Hi @triixx
Instead of return $msg;
, I believe you can use the wp_redirect()
function instead like this:
// These are just for testing. You need to get the actual
// value based on the registration
$success = false;
$error_code = '1'
// if the registration failed
if( !$success ){
wp_redirect( 'http://example.com/register/?success=false&error=' . $error_code );
}`
I hope this helps 🙂
Hi,
I finaly used acf_valide() before acf_save() and it’s good 🙂
Thanks
The topic ‘ACF_FORM() get return’ is closed to new replies.
Welcome to the Advanced Custom Fields community forum.
Browse through ideas, snippets of code, questions and answers between fellow ACF users
Helping others is a great way to earn karma, gain badges and help ACF development!
We use cookies to offer you a better browsing experience, analyze site traffic and personalize content. Read about how we use cookies and how you can control them in our Privacy Policy. If you continue to use this site, you consent to our use of cookies.