2014-10-10 114 views
2

我正在創建一個表單,將表單的詳細信息發送到我的電子郵件。這裏是我的代碼:爲什麼我不能將一個wordpress函數分配給一個變量?

<?PHP 
$errors = array(); 
if (isset($_POST["submit"])) { 
    $to = "[email protected]"; 
    $subject = "This is my subject";  
    $hotel = echo get_permalink(); 
    $headers = array('From: '.$_POST['sendername'].' <'.$_POST['senderEmail'].'>'); 
    //Check the name and make sure that it isn't a blank/empty string. 
     if(empty($sender)){ 
      //Blank string, add error to $errors array.   
      $errors['sendername'] = "Please enter your name!"; 
     } 
     if(empty($senderEmail)){ 
      //Blank string, add error to $errors array.   
      $errors['senderEmail'] = "Please enter your email!"; 
     } 
    $mailBody = "<h3>Hotel Details</h3>" 

    $mail_sent = wp_mail($to, $subject, $mailBody, $headers); 

} 
    if ($mail_sent) { ?> 

<h1 style="color: #007f00;">Request sent.</h1> 

<?php 
} else { 
?> 

<form id="" name="" action="<?php echo get_permalink(); ?>" method="post"> 
    <div class="label-input-wrapper"> 
     <div class="form-label">Name</div> 
     <div class="form-input"> 
      <input type="text" name="sendername" value="<?PHP if(!empty($errors)) { echo $sender;} ?>" /> 
      <div class="error-msg"> 
       <?php if(isset($errors['sendername'])) { echo '<span style="color: red">'.$errors['sendername'].'</span>'; } ?> 
      </div> 
     </div> 
    </div> 
    <div class="label-input-wrapper"> 
     <div class="form-label">E-Mail</div> 
     <div class="form-input"> 
      <input type="email" name="senderEmail" pattern="[a-z0-9._%+-][email protected][a-z0-9.-]+\.[a-z]{2,4}$" required value="<?PHP if(!empty($errors)) { echo $senderEmail;} ?>" /> 
      <div class="error-msg"> 
       <?php if(isset($errors['senderEmail'])) { echo '<span style="color: red">'.$errors['senderEmail'].'</span>'; } ?> 
      </div> 
     </div> 
    </div> 

    <input type="submit" value="Submit" name="submit"> 
</form> 

<?php 
} 
?> 

如果我提交表單它顯示了一個分析錯誤意想不到的回聲變量爲線$hotel = echo get_permalink();。我不能將wordpress函數get_permalink();賦值給一個變量嗎?

如果我改變從$hotel = echo get_permalink();行至$hotel = permalink();它說致命錯誤:調用未定義功能永久()

但它的工作原理,如果我把一個隱藏字段到窗體: <input type="hidden" name="hotel_url" value="<?php echo get_permalink(); ?>" /> 和獲取值如下:$hotel = isset($_POST["hotel_url"]); 通過這種方式,我可以將該函數的值分配給一個變量,並向我發送帶有正確頁面URL的電子郵件。

但我不想爲此使用隱藏的字段。因爲在提交表單時,我還想發送一些敏感信息給我的電子郵件。如果我使用上述工作方法來做到這一點,任何人都可以看到如果看到源代碼的值。

那麼如何將wordpress函數的值賦給變量呢?

+0

之前,我開始談論[主循環]的概念(http://codex.wordpress.org/ The_Loop),對於我來說,將wordpress文章或頁面的固定鏈接分配給一個'$ hotel'變量是沒有意義的。 – 2014-10-10 05:59:23

+0

@isim當表單提交時,我收到一封電子郵件。該電子郵件包含僅供管理員使用的詳細信息,例如酒店聯繫人和佣金率。 – 2014-10-10 06:04:22

回答

5

不能使用像

$hotel = echo get_permalink(); 

您可以像使用

$hotel = get_permalink(); 
+0

哦..是啊..非常感謝 – 2014-10-10 06:02:15

+0

歡迎Riffaz Starr :) – 2014-10-10 06:04:26

相關問題