2016-11-28 249 views
-1

我很难尝试将php代码集成到我在wordpress上创建的表单中。我尝试了3个不同的PHP插件无济于事。这里是html和css。有没有人有任何想法,我应该把WordPress的WordPress,我应该如何通过形式中的“行动”正确地称呼它?如何将php添加到wordpress表单

CSS:

<style> 
    input[type=text], input[type=number], select[name=province]{ font-family: arial; width:100%; 
    border: 1px solid #E5E5E5; padding: 10px 20px;} 
input[name=ffirstname] {width:49%; margin-right:1%; } 
input[name=lastname] {width:49%; margin-left:1%; } 
input[name=address] {width:65.6667%; margin-right:1%; } 
input[name=unit] {width:32.3337%; margin-left:1%; } 
input[name=city] {width:49%; margin-right:1%; } 
select[name=province] {width:24%; margin-left:1%;} 
input[name=postal] {width:24%; margin-left:1%; } 
input[name=email] {width:49%; margin-right:1%; } 
input[name=phone] {width:49%; margin-left:1%;} 
input[class=submit] { 
    background-color: #f05a28; 
    color: white; 
    padding: 8px 20px; 
    margin-left: 85%; 
    border-radius: 4px; 
    border: none; !important; 
    outline: none; !important ; 
    cursor: pointer; 
    box-shadow: none; !important; 
} 
</style> 

HTML:

<form name"infoform" method="post" action="form-to-email.php" > 
    <br><input type="text" name="ffirstname" placeholder="First Name"/><input type="text" name="lastname" placeholder="Last Name"/> 
    <br><br><input type="text" name="address" placeholder="Address"/><input type="text" name="unit" placeholder="Unit"/></br> 
    <br><input type="text" name="city" placeholder="City"/><select name="province" form="form1"> 
<option value="ab">AB</option> 
    <option value="BC">BC</option> 
    <option value="BC">MB</option> 
    <option value="NB">NB</option> 
<option value="NL">NL</option> 
<option value="NS">NS</option> 
<option value="ON">ON</option> 
<option value="PE">PE</option> 
<option value="QC">QC</option> 
<option value="SK">SK</option> 
</select><input type="text" name="postal" placeholder="Postal Code"/></br> 
<br><input type="text" name="country" placeholder="Country"/></br> 
<Br><input type="text" name="email" placeholder="Email"/><input type="number" name="phone" placeholder="Phone#"/></br> 
<br> <br><input type="submit" value="Next"/> 

PHP:

<?php 

$name = $_POST['ffirstname']; 
$email = $_POST['lastname']; 
$message = $_POST['address']; 

$to = "[email protected]"; 
$subject = "My contact form"; 
$body = " You have received a new"; 
mail($to,$subject,$body); 

?> 

回答

0

我通常使用footer.php只是身体的结束标记前添加JS和PHP代码, 。但如果这不起作用,请尝试使用header.php。也许你的代码需要在结束之前被包含。 您可以在页面或帖子内放入HTML部分,而不会出现问题。

如果您想使用插件,您可以使用Contact form 7轻松做到这一点。

查看herehere的教程。

更新 - 添加PHP代码到WordPress:

您可以添加<?php标签之间的代码,所以打开标签

<?php 

//PHP Code here 

?> 

这样里面的header.phpfooter.phppage.php和编写代码你会在你网站的每个Wordpress页面上看到这个代码。

页眉和页脚始终包含在所有页面上。 如果你只需要它的文章或网页使用page.phppost.php

+0

我不想使用联系人7或任何其他插件,我希望能够以非常特别设置表的格式。如何将php放入wordpress的页眉或页脚? –

+0

我更新了答案。 –

+0

我在哪里可以找到这些PHP文件完全在WordPress?我是否通过cPanel并在文件夹中找到它?如果是的话,它将位于何处。 –

0

如果您想对PHP的WordPress的页面中放置控制,然后看看page templates。您可以创建一个表单页面模板,该模板具有表单和必要的php来处理它,然后将其应用于给定的URL,例如/sign-up。这样你就不必将表格代码弄乱了每个页面的header.phpfooter.php

对于表单本身,您可以自己创建它post,然后检查当使用isset($_POST['field_name'])加载页面时是否设置表单变量。如果他们在场,那么你可以假设表格已经发布,因此你需要发送电子邮件,否则如果他们不存在,那么你可以假设你需要显示表格。

例如

<?php if(isset($_POST['ffirstname'])){ 
    // Do some appropriate sanitization for your use case 
    $ffirstname = htmlspecialchars(trim($_POST['ffirstname'])); 
    //.. repeat for other fields, and then send email 
    // could drop out of php here and show a thank you message 
    ?> 
    <p>Thank you for submitting the form</p> 
    <?php 
} else { 
    // $_POST['ffirstname'] not set, so show form ?> 
    <form method="post" action=""> 
     <input type="text" name="ffirstname" /> 
     <input type="submit" value="Submit" /> 
    </form> 
<?php } ?> 

如果你要挂钩到WordPress了这一点,那么做到这一点的方法之一是它的价值在functions.php文件中添加一个隐藏的输入称为动作,并设置为一个函数的名称。您还需要添加一些javascript,以便将ajax提交给可以执行逻辑和电子邮件发送的功能:

// Form Page 
<form method="post" action="" id="emailForm"> 
    <input type="text" name="ffirstname" /> 
    <input type="hidden" name="action" value="sendEmail" /> 
    <input type="submit" value="Submit" /> 
</form> 

// Somewhere further down the same page as the form 
<script type="text/javascript"> 
    jQuery('#emailForm').on('submit', function() { 
     e.preventDefault(); 
     jQuery.ajax({ 
      type: 'POST', 
      url: '/wp-admin/admin-ajax.php', 
      data: jQuery('#emailForm').serialize(), 
      success: function(data) { 
       // Perhaps some UI update here to let the user know 
       // the submission was successful 
      }, 
      error: function(error) { 
       // Do something with the error 
      } 
     }); 
    }); 
</script> 

然后在你的主题functions.php文件:

// Functions.php 
function sendEmail(){ 
    // Do some appropriate sanitization for your use case 
    $ffirstname = htmlspecialchars(trim($_POST['ffirstname'])); 
    //.. repeat for other fields as necessary, and then send email 
    return wp_mail($recipient, $subject, $body, $headers); 
} 
add_action('wp_ajax_sendEmail', 'sendEmail'); 
相关问题