Я ищу решение на своем веб-сайте. Мне нужно проверить, существует ли электронная почта в БД из контактной формы 7 и перенаправить на другую страницу (страницу с содержимым, если она существует). Если не существует, перенаправьте на другую страницу (страницу регистрации).
Затем я нашел этот код, и он очень хорошо работает в моей тестовой области: Как проверить, отправлено ли электронное письмо через контактную форму 7 есть в моей базе данных?
Однако тот же код не работает на моем официальном веб-сайте.
Полезная информация:
- оба сайта находятся в тот же хост, та же тема, были продублированы через плагин Duplicator. - Находятся в разных URL
- И в базах данных разделены
- Имя поля электронной почты одинаково для регистра и формы доступа ('user-email')
- I не хочу использовать подключаемые модули участников в этом конкретном случае c, потому что доступ к сайту требуется только по электронной почте и базе данных, в которой уже есть много записей
Может ли кто-нибудь помочь мне с это?
PS: извините, мой плохой английский sh =)
Это код:
add_filter( 'wpcf7_validate', 'email_already_in_db', 10, 2 );
function email_already_in_db ( $result, $tags ) {
// retrieve the posted email
$form = WPCF7_Submission::get_instance();
$email = $form->get_posted_data('user-email');
// if already in database, invalidate
if( email_exists( $email ) ) // email_exists is a WP function
$result->invalidate('user-email', 'Exists in DB');
// return the filtered value
return $result;
}
function my_awesome_cf7_custom_events () { ?>
<script type="text/javascript">
document.addEventListener( 'wpcf7invalid', function( event ) {
if ( '585' == event.detail.contactFormId ) {//<===replace FORM_ID with form id
//redirect to link from users already registered in my cf7 form
location.replace('http://example.com/url-with-content');
}
}, false );
document.addEventListener( 'wpcf7mailsent', function( event ) {
//redirect to link cf7 form register
location = 'http://example.com/url-register';
}, false );
</script>
<?php }
add_action( 'wp_footer', 'my_awesome_cf7_custom_events' );