如何从模板零件Wordpress主题触发表单提交

时间:2019-01-11 18:07:36

标签: php wordpress

所以我的问题如下。

我正在学习wordpress并创建自定义主题。 这个想法是创建一个动态模态,其中包含一个表单,我可以在不同的地方重用它。我在service-modal.php文件中创建了模态,并在front-page.php上使用了它。

我的提交功能根本不会触发,因此我添加到提交中的任何内容都不会显示,甚至不会显示简单的回声。

我认为我的表单操作是错误的,但是找不到类似的问题/解决方案。

这是我的 service-modal.php

<?php 

    //Service modal
    //function service_modal($args){
        if(isset($_POST['submitted'])) {


            $my_post = array(
                'post_title'    => 'Test Title',
                'post_status'   => 'publish',
                'post_type' => 'inquiries'
            );


            $newpost = wp_insert_post($my_post); 


            if (!is_wp_error($newpost)) {
                echo 'success'; 

            } else {
                echo 'error';
            }
        }

        //$post = $args['service'];
        $orgTitle = get_field('title');
        $title = str_replace(' ', '', $orgTitle);
        ?>
            <div class="service-modal <?php echo strtolower($title)?> ">
                <form id="serviceInquiry" action="<?php get_permalink(); ?>" method="post">
                    <div class="service-modal-header">
                        <h4>You've selected the <span name="spackage"><?php echo get_field('title');?></span> package</h4>
                        <span class="close-modal">Close<span>
                    </div>

                    <div class="service-modal-content">
                        <div class="service-modal-content-details">
                            <h5>Selected package includes:</h5>
                            <ul class="service-list">
                            <?php 
                                for ($x = 1; $x < 7; $x++){
                                    if(get_field('item_'.$x) != ""){
                            ?>
                                    <li><p><?php echo get_field('item_'.$x);?></p></li>
                            <?php
                                    }
                                }
                            ?>
                            </ul>

                            <div class="price-group">
                                <span>$<span class="price" name="sprice"><?php echo get_field('price');?></span>/<span class="price-value"><?php echo get_field('price_value');?></span></span>
                            </div>
                        </div>
                        <div class="service-modal-content-form">
                            <h5>Leave us your details:</h5>
                            <input type="text" placeholder="Name" name="username">
                            <input type="text" placeholder="Email" name="semail">
                            <textarea placeholder="Message" name="smessage"></textarea>
                        </div>
                    </div>

                    <div class="service-modal-footer">
                        <div class="buttons">
                            <button type="button" class="cancel-btn">Cancel</button>
                            <button type="submit" class="send-btn">Send inquiry</button>
                        </div>
                    </div>  
                </form>      
            </div>
        <?php

    ?>

我在 front-page.php 上使用此模式部分,如下所示:

 include( locate_template( 'service-modal.php', false, false ) ); 

正如我所提到的,我以某种方式认为我的表单操作是错误的,但不团结起来理解原因,也找不到解决方法。

如果有人知道解决方案,我也将不胜感激,因为我也很想理解。我知道我可能可以使用Ajax处理此表单提交,但也希望以前以这种方式完成它。

0 个答案:

没有答案