Как добавить связанную настраиваемую страницу PHP в плагин

Я пытаюсь создать свой первый плагин.

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

У меня есть флажок и ссылка. Ссылка перейдет на страницу TOS (моя пользовательская страница PHP), и как только пользователь примет TOS, пользователь сможет вернуться к FORM, заполненному их данными, и этот флажок установлен.

Пользователь также может просто установить флажок и отправить сообщение.

Мой вопрос заключается в том, как я могу поместить мою страницу TOS так, чтобы она соответствовала существующему веб-сайту. Я хочу, чтобы моя страница PHP была завернута, чтобы использовать любую тему, которую пользователь выбрал для своего веб-сайта. Кроме того, я хочу вернуться к форме с ней, завернутой в тему пользователей, как и изначально.

Я открываю свою форму, используя крючок, поэтому все хорошо.

Я хочу понять, как сделать это правильно, а не дешевый и простой способ.

Заранее благодарим за любую помощь, которую вы можете предложить.

<a href="test.php" target="_blank">To TOS</a>

<!--?PHP
 echo '<HTML-->Terms Of Service1. TOS 12. TOS 2';
?>
4 ответа

Я читал о поддельных страницах. http://betterwp.net/98-wordpress-create-fake-pages/, который может быть вашим ответом.


Лучший (и самый сложный способ) - добавить правило перезаписи и переписать тег:

Добавьте тег, подобный этому: http://codex.wordpress.org/Rewrite_API/add_rewrite_tag

И затем правило перезаписи: http://codex.wordpress.org/Rewrite_API/add_rewrite_rule

Затем у вас будет указатель на что-то вроде YOURDOMAIN.com/YOUR-URL с соответствующими переменными глобального запроса WP, чтобы указать на шаблонный файл, который вы можете сделать с действием "template_redirect",

Так:

//add the rewrite tag to the WP Query (called on the init action, or earlier)
add_rewrite_tag('%terms-of-service%','([^&]+)');

//add a rewrite rule: (init or earlier)
add_rewrite_rule('^terms-of-service/?','index.php?tos=true','top');

//And then add an action on 'template_redirect':
add_action( 'template_redirect', 'tos_query' );

function tos_query(){

 global $wp_query;

 if( isset( $wp_query->query_vars['terms-of-service'] ) ){

 locate_template( --YOUR URL-- )

 }

}

Имейте в виду, что переписывание api WordPress является раздражающим минным полем, вам нужно будет использовать

global $wp_rewrite;
 $wp_rewrite->flush_rules();

Прежде чем все это сработает, возможно...

Этот плагин имеет отличный способ обработки перенаправления: http://wordpress.org/plugins/simple-portfolio/ (хотя это для пост-типа, а не для функции)


Для этого есть несколько шагов. Как я это делаю, как ниже

  1. Создать короткий код для вашей формы

    add_shortcode ('myshortcode', 'my_shortcode_handler');

  2. Создать функцию my_shortcode_handler

    function my_shortcode_handler ($ atts, $ content = null) {include ('myhtmlform.php'); } }

  3. Создайте myhtmlform.php, вставьте свою логику.

  4. Вызовите "[myshortcode]" на любой странице, в которой вы хотите, чтобы ваша форма

PS Вставьте весь этот код в основной файл плагина.

С уважением


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

Однако вы можете добавлять библиотеки в свой плагин, чтобы они могли использовать их для определенных задач. Вам, вероятно, потребуется создать плагин для того, что вы просите. Но если вы хорошо разбираетесь в PHP, у вас не будет проблемы.

Я предлагаю начать с Wordpress Codex для ссылки на API-интерфейс плагина:

http://codex.wordpress.org/Plugin_API

licensed under cc by-sa 3.0 with attribution.