Домой Wp-Recall WP-Recall: Пишем свое дополнение и кастомизация Как сделать свою кастомную форму с произвольным порядком полей
8ответ(ов) в теме
spoonyto
не в сети 4 года
На сайте с 25.05.2020
Участник
Тем 1
Сообщения 4
1
09:34
Версия WP-Recall: 16.18.20

Здравствуйте, спасибо за плагин, замечательная идея!

Не могу разобраться с фильтрами.

У меня есть задача, сделать форму с собственной разметкой и собственным порядком полей (как полей по умолчанию, так и произвольных полей).

К примеру,
логин
емейл
пароль
повтор пароля
произвольные поля

Что я хочу сделать

Произвольное поле 1
Произвольное поле 2
логин
Произвольное поле 3
емейл
Произвольное поле 4
пароль
повтор пароля
Произвольное поле 5
Произвольное поле 6

Понимаю что либо фильтр нужен register_form, но как всё собрать вместе не представляю.
Я пробовал меня form-register.php, но это все получается вокруг да около.

Подскажите если есть такой функционал и как это можно реализовать?

0
Вова (Otshelnik-Fm)
не в сети 4 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
2
09:59

Здравствуйте.

Перенесено в кастомизации.

Что-то мне подсказывает что более правильным будет собрать свою форму регистрации с ноля, чем пытаться под себя подбить готовое.

0
spoonyto
не в сети 4 года
На сайте с 25.05.2020
Участник
Тем 1
Сообщения 4
3
10:12

Согласен,

Это как-то можно реализовать с wp-recall плагином? Мне очень нужны другие модули.
Я нашёл

Вы не можете просматривать опубликованные ссылки

Можно ли как-то через rcl_default_profile_fields получить default поля и вывести произвольно?

0
Вова (Otshelnik-Fm)
не в сети 4 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
4
10:15

Ну если имена metakey использовать - то другие модули будут верно работать.

Ваш вопрос достаточно не простой и глубоко надо смотреть в плагине. Я не готов столько времени выделить на это.

Попробуйте в заданиях найти исполнителя

Вы не можете просматривать опубликованные ссылки

ну или может кто еще отпишется в этой теме.

0
Андрей CS
не в сети 3 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16936
5
10:21

думаю, можно просто открыть шаблон формы регистрации и вывести там нужный перечень полей в требуемом порядке

0
spoonyto
не в сети 4 года
На сайте с 25.05.2020
Участник
Тем 1
Сообщения 4
6
10:34

Андрей, а подскажите условно

<form action="<?php rcl_form_action( 'register' ); ?>" method="post" enctype="multipart/form-data">
        <div class="form-block-rcl default-field">

//Произвольное поле 1

            <input required type="text" placeholder="<?php _e( 'Login', 'wp-recall' ); ?>" value="<?php echo $user_login; ?>" name="user_login" id="login-user">
            <i class="rcli fa-user"></i>
            <span class="required">*</span>
        </div>
//Произвольное поле 2
        <div class="form-block-rcl default-field">
            <input required type="email" placeholder="<?php _e( 'E-mail', 'wp-recall' ); ?>" value="<?php echo $user_email; ?>" name="user_email" id="email-user">
            <i class="rcli fa-at"></i>
            <span class="required">*</span>
        </div>
//Произвольное поле 3


//Т.е. ниже можно код закоментить?
		<div class="form-block-rcl form_extend">
			<?php do_action( 'register_form' ); ?>
		</div>


        <div class="form-block-rcl">
            <input type="submit" class="recall-button" name="submit-register" value="<?php _e( 'Signup', 'wp-recall' ); // Зарегистрироваться      ?>">

			<?php echo wp_nonce_field( 'register-key-rcl', 'register_wpnonce', true, false ); ?></code>
            <input type="hidden" name="redirect_to" value="<?php rcl_referer_url( 'register' ); ?>">
        </div>
    </form>

А каким образом тогда их вызывать?

Как-то так?

<?php $произвольное_поле	 = (isset( $_REQUEST['произвольное_поле'] )) ? wp_strip_all_tags( $_REQUEST['произвольное_поле'], 0 ) : ''; >

<?php echo $произвольное_поле; ?>

Редакции сообщения
25.05.2020 10:36spoonytoПричина: не указано
25.05.2020 11:22Андрей CSПричина: не указано
0
spoonyto
не в сети 4 года
На сайте с 25.05.2020
Участник
Тем 1
Сообщения 4
7
11:26

Я понял что есть get_user_meta (но он выводит непосредственно в профиль пользователя). А как отображать поля для ввода на странице регистрации?

Редакции сообщения
25.05.2020 11:26spoonytoПричина: не указано
0
Андрей CS
не в сети 3 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16936
8
11:28

Я бы накидал вспомогательную функцию для вывода полей блоками, например:

function rcl_get_fields_register_form($regFields){

	$content = '';

	$CF = new Rcl_Custom_Fields();

	foreach ( $regFields as $field ) {

		$class	 = (isset( $field['class'] )) ? $field['class'] : '';
		$id		 = (isset( $field['id'] )) ? 'id=' . $field['id'] : '';
		$attr	 = (isset( $field['attr'] )) ? '' . $field['attr'] : '';

		$content .= '<div class="form-block-rcl ' . $class . '" ' . $id . ' ' . $attr . '>';
		$star	 = ($field['required'] == 1) ? ' <span class="required">*</span> ' : '';
		if ( $title	 = $CF->get_title( $field ) ) {
			$content .= '<label>' . $title . $star;
			if ( $field['type'] )
				$content .= '<span class="colon">:</span>';
			$content .= '</label>';
		}

		$value = (isset( $_POST[$field['slug']] )) ? $_POST[$field['slug']] : false;

		$content .= $CF->get_input( $field, $value );
		$content .= '</div>';
	}

	return $content;

}

Передайте в функцию массив нужных полей согласно мануалу

Вы не можете просматривать опубликованные ссылки

и она отдаст html-контент полей, который останется только разместить в нужном месте.

0
Вы не имеете права на публикацию сообщений в этой теме