如何在插件功能中包含联系表单7短代码?

时间:2014-06-02 14:42:49

标签: wordpress-plugin wordpress

我正在尝试创建一个简单的插件来返回我的联系表单7代码,该代码在任何页面模板中都能正常工作。一切正常,除了显示联系表格的行。我认为插件是在联系表单之前加载的,或者还有其他任何我不知道的问题。这是我的代码。谢谢大家。

<?php

    function contact_popup()
    {
       echo "


       <div class='contact-popup'>
                <div class='clickme-area'>
                <a href='#' class='clickme' >We'd love your feedback</a>
    </div>
            <div class='testing'>


                <div class='contact-form'>
                    <div class='header'>
                    <h2 class='title'>Leave your feedback</h2>


                            <a class='closeme' href='#'> X </a>

                        </div>

                <?php  do_shortcode( '[contact-form-7 id='55' title='Contact form 1']' ); ?>
    </div>


    </div>


    </div>
    <script src='http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js'></script>

    <link rel='stylesheet' href='http://code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css'>
    <link rel='stylesheet' href='style.css'>

    <script src='http://code.jquery.com/ui/1.10.4/jquery-ui.js'></script>

    <script>
        $(document).ready(function(){
            $('.wpcf7-submit').click(function(){

                $('.contact-popup').animate({height:'470px'}, 900);


            });   


        });
    </script>


    <script>
        $(document).ready(function(){
            $('.closeme').click(function(){

                $('.testing').hide();

                $('.clickme').fadeToggle('slow');

                $( '.contact-popup' ).dialog({

                    width: 225,
                    height: 31,
                    position: [1000,200],
                    show: {
                        effect: 'fade',
                        duration: 1000
                    },
                    hide: {
                        effect: 'fade',
                        duration: 1000
                    }


                });


            });



        });
    </script>



    <script>
        $(document).ready(function(){
            $('.clickme').click(function(){

                $('.testing').fadeToggle('slow');
                $('.clickme').hide();

                $( '.contact-popup' ).dialog({

                    width: 220,
                    height: 356,
                    position: [1000,200],
                    show: {
                        effect: 'fade',
                        duration: 1000
                    },
                    hide: {
                        effect: 'fade',
                        duration: 1000
                    }


                });


            });
        });
    </script>

    <script>
        $(function() {



            $( '.contact-popup' ).dialog({


                create: function (event, ui) {
                    $('.ui-widget-header').hide();

                    $('.testing').hide();
                },

                width:225,
                height:36,
                position: [1000,200],
                dialogClass:'dialog-class',

                show: {
                    effect: 'fade',
                    duration: 1000
                },
                hide: {
                    effect: 'fade',
                    duration: 1000
                }



            }).css('position','fixed');



        });
    </script>


       ";
    }
    ?>

2 个答案:

答案 0 :(得分:0)

您无法在echo声明中执行php。

由于你使用双引号字符串,你可以这样做:

function contact_popup() {
  $cf = do_shortcode( '[contact-form-7 id='55' title='Contact form 1']' );
  echo "
  ...
       </div>
     $cg
  </div>
  ...
  ";

更好的方法是使用HEREDOC语法创建字符串,并使用%%CONTACT_FORM%%等占位符作为联系表单,然后使用str_replace将占位符替换为$cf变量和回声。

答案 1 :(得分:0)

为什么不将表单中的所有html样式放在联系表单中,然后执行:

<?php echo do_shortcode( '[contact-form-7 id="55" title="Contact form 1"]' ); ?>