Ответы в темах

Просмотр 4 ответов — с 1 по 4 (всего 4)
  • Сделал все через куки 🙂
    как причешу скину код, для сообщества

    Так же возможно глаз замылился и я явно не вижу ошибки 🙁

    Всяко пробовал, но ничего не получается.
    Рефка: http://mysite.ru/wp-login.php?action=register&sponsor=shadowxak
    Приведу код полностью функции в шаблоне:

    <?php
    add_action('register_form','show_fields');
    add_action('register_post','check_fields',10,3);
    add_action('user_register', 'register_fields');
    function show_fields() {
    ?>
    <p>
    	<label>Дата рождения<br/>
    	<input id="date_of_birth" class="input" type="date" value="<?php echo $_POST['date_of_birth']; ?>" name="date_of_birth" /></label>
    </p>
    <p>
    	<label>Номер сотового(+70000000000)<br/>
    	<input id="mobile" class="input" type="text" value="<?php echo $_POST['mobile']; ?>" name="mobile" /></label>
    </p>
    <p>
    	<label>Вас пригласил:<br/>
    	<input id="sponsor" class="input" type="text" value="<?php echo $_GET['sponsor'] ?>" name="sponsor" disabled="disabled" /></label>
    </p>
    <?php }
    function check_fields ( $login, $email, $errors ) {
    global $date_of_birth, $mobile, $sponsor;
    if ($_POST['date_of_birth'] == ''){
    	$errors->add( 'empty_realname', "ОШИБКА: Не указана дата рождения?" );
    } else {
    	$date_of_birth = $_POST['date_of_birth'];
    }
    if ($_POST['mobile'] == ''){
    	$errors->add( 'empty_realname', "ОШИБКА: Не указан номер телефона?" );
    } else {
    	$mobile = $_POST['mobile'];
    }
    if ($_POST['sponsor'] == ''){
    	$errors->add( 'empty_realname', "ОШИБКА: Не указан пригласитель!" );
    } else {
    	$sponsor = username_exists($_POST['sponsor']);
    }
    }
    
    function register_fields($user_id,$password= "",$meta=array()){
    	$refer = username_exists($_POST['sponsor']);
    	update_user_meta( $user_id, 'date_of_birth', $_POST['date_of_birth'] );
    	update_user_meta( $user_id, 'mobile', $_POST['mobile'] );
    	update_user_meta( $user_id, 'sponsor', $refer );
    }

    Мое предположение вот какое:
    При нажатии кнопки зарегистрироваться в функцию check_fields параметр $_POST[‘sponsor’] не передается, полагаю что из-за того что в функции show_fields я его обрабатываю GET запросом из командной строки, а после нажатии зарегистрироваться параметр из строки пропадает и POST из формы не передает и не обрабатывает срабатывает «ОШИБКА: Не указан пригласитель!» и естественно регистрация не происходит.

    Полагаю необходимо для успешного выполнения сохранять реферальную ссылку в строке браузера, но как это реализовать не меняя движек не знаю.

    Спасибо буду пробовать

Просмотр 4 ответов — с 1 по 4 (всего 4)