Поддержка Проблемы и решения Вывод страницы плагина

  • Здравствуйте, можете подсказать как вывести страницу плагина?
    К примеру, у меня есть «плагин», а на ней этот код :

    <?php
    
    echo <<<HERE
    <html>
    <head>
     <title>Форма</title>
    </head>
    <body>
     <form method="POST" action="">
      <input name="name" type="text" placeholder="Имя"/>
      <input name="text" type="text" placeholder="Текст"/>
      <input type="submit" value="Отправить"/>
     </form>
    </body>
    </html>
    HERE;
    
    if (isset($_POST['name']) && isset($_POST['text'])){
    
        // Переменные с формы
        $name = $_POST['name'];
        $text = $_POST['text'];
        
    	$a = strlen($name);
        
        if ($a >= 1){
        	echo "Здравствуй, $name, ты написал - $text ";
        }elseif ($name == ""){
        	echo "Пусто";
        }
    }
    
    ?>
    

    Как я могу вывести это содержимое в какую-либо страницу?
    Читал, что есть шорткоды, но при попытке создания -> синтаксическая ошибка…
    Да и функции нет в данном коде…

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • делайте шорткод.
    не получится — пишите здесь, вам помогут.

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

    еще раз повторю — пишите шорткод.
    приведите тут его код. вам подскажут, где вы сделали ошибку.

    function my_test() {
    echo <<<HERE
    <html>
    <head>
     <title>Форма</title>
    </head>
    <body>
     <form method="POST" action="">
      <input name="name" type="text" placeholder="Имя"/>
      <input name="text" type="text" placeholder="Текст"/>
      <input type="submit" value="Отправить"/>
     </form>
    </body>
    </html>
    HERE;
    
    if (isset($_POST['name']) && isset($_POST['text'])){
    
        // Переменные с формы
        $name = $_POST['name'];
        $text = $_POST['text'];
        
    	$a = strlen($name);
        
        if ($a >= 1){
        	echo "Здравствуй, $name, ты написал - $text ";
        }elseif ($name == ""){
        	echo "Пусто";
        }
    }
    	
    }
    
    my_test();
    
    add_shortcode( 'my_test', 'my_test' );
    
    echo do_shortcode('[my_test]');

    это не плагин.
    вот плагин:

    <?php
    /*
    Plugin Name: My Custom Form
    Description: Шорткод вывода формы.  
    Version: 1.00
    Author: gransfor
    */ 
    
    function my_test_func() {
    
        if( isset( $_POST['form_submit'] ) ) {
            
            if (isset($_POST['username']) && isset($_POST['usertext'])){
    
                // Переменные с формы
                $name = sanitize_text_field($_POST['username']);
                $text = sanitize_text_field($_POST['usertext']);
        
                $a = strlen($name);
        
                if ($a >= 1){
                    $temp = "<p>Здравствуй, $name, ты написал - $text </p>";
                }elseif ($name == ""){
                    $temp =  "<p>Пусто</p>";
                }
                
                return $temp;
            }
    
        } 
    
        $temp = '
        <form method="post" action="'.get_the_permalink().'" autocomplete="on">          
            <input type="text" name="username" placeholder="Имя" />
            <input type="text" name="usertext" placeholder="Текст" />
            <input type="submit" name="form_submit" value="Отправить" />
        </form>
        ';
    
        return $temp;
    
    }
    add_shortcode('my_test', 'my_test_func');
    

    рабочий плагин. а что вы там нагородили мне неясно.
    в html-режиме записи вставьте шорткод [my_test] — будет выведена рабочая форма.

    Спасибо!

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Тема «Вывод страницы плагина» закрыта для новых ответов.