2013-03-29 40 views
0

我想寫一個函數,我發佈後,我的用戶發送電子郵件。以下是我迄今爲止:WordPress的 - 功能參數不通過

require_once('db.php'); 

$sql="SELECT email FROM table"; 

$result = sqlsrv_query($sqlsrvconnection, $sql); 

$emailList=""; 

while($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC)){ 
    $emailList.=", ".$row['email']; 
} 

add_action('save_post', 'email_members'); 

function email_members($post_id, $emailList) { 

    if (!wp_is_post_revision($post_id)) { 

     $to  = '[email protected]'; 
     $subject = 'the subject'; 
     $message = "email list consists of: ".$emailList; 
     $headers = 'From: [email protected]' . "\r\n" . 
      'Reply-To: [email protected]' . "\r\n" . 
      'X-Mailer: PHP/' . phpversion(); 

     mail($to, $subject, $message, $headers); 

} 

} 

在我的功能我曾嘗試在$的emailList變量傳遞,但我不能用它做任何事情。我把它傳錯了嗎?掛鉤到另一個WP動作時,這是不允許的?

+0

可能會問這是什麼?它看起來並不一致..你是否試圖從用戶表中獲取電子郵件?它看起來像你的東西容易更復雜,然後需要即:像這樣的SQL查詢..我錯過了什麼?你能詳細說明你的目標嗎? –

+0

@DavidChase我從與WP數據庫分開的預先存在的數據庫中選擇電子郵件。否則,我會使用wpdb。 – Jordan

回答

0

我想到我的函數被調用到別處(使用save_post動作)。因此,該函數無法訪問$ emailList變量。我把所有的東西(add_action()除外)都放在函數中,一切都很好用!

add_action('save_post', 'email_members'); 

function email_members($post_id, $emailList) { 

    require_once('db.php'); 

    $sql ="SELECT email FROM table"; 

    $result = sqlsrv_query($sqlsrvconnection, $sql); 

    $emailList=""; 

    while($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC)){ 
     $emailList.=", ".$row['email']; 
    } 

    if (!wp_is_post_revision($post_id)) { 

     $to  = '[email protected]'; 
     $subject = 'the subject'; 
     $message = "email list consists of: ".$emailList; 
     $headers = 'From: [email protected]' . "\r\n" . 
      'Reply-To: [email protected]' . "\r\n" . 
      'X-Mailer: PHP/' . phpversion(); 

     mail($to, $subject, $message, $headers); 

    } 

}