2014-11-21 100 views
-1

我用一个联系表7的形式赶上在现场电话用户的电话号码给他发一个短信提醒,这样的:联系表格7到PHP SMS发送

<p>Your phone number<br /> 
    [text* phone] </p> 

<p>[submit "Send"]</p> 

在我的WordPress主题的功能,我那么有以下几点:

add_action('wpcf7_mail_sent', 'your_wpcf7_mail_sent_function'); 
function your_wpcf7_mail_sent_function($contact_form) { 
    $title = $contact_form->title; 
    $posted_data = $contact_form->posted_data; 

    if ('smsservice' == $title) { 

     $phone = $posted_data['phone']; 
     require_once 'http://myurl.com/smsservice/send_sms.php'; 
    } 
} 

和链接send_sms.php我:

# Modify these values to your needs 
    $username    = 'myusername'; 
    $pass     = 'mypassword'; 
    $gateway_url   = 'api-adress'; 

    $utf8_message_text = "This is a test sms!"; 
    $recipientAddressList = array['$phone'] 


    $maxSmsPerMessage  = 1; 
    $test     = false; // true: do not send sms for real, just test interface 

    try { 

    // 1.) -- create sms client (once) ------ 
    $smsClient = new WebSmsCom_Client($username, $pass, $gateway_url); 
    //$smsClient->setVerbose(true); 

    // 2.) -- create text message ---------------- 
    $message = new WebSmsCom_TextMessage($recipientAddressList, $utf8_message_text); 
    //$message = binary_sms_sample($recipientAddressList); 

    // 3.) -- send message ------------------ 
    $Response = $smsClient->send($message, $maxSmsPerMessage, $test); 

然而,EAC当我填写表格时,它什么都不做。甚至没有发送表格。但是,从PHP代码我似乎无法找到一个错误。其他人?

最好的问候, 勒布

回答

0

如果您使用的版本3.9或更高版本的联系表7的posted_data财产已被弃用。见下:

/* WPCF7_ContactForm object no longer has a posted_data property. */ 
$posted_data = $contact_form->posted_data; // Wrong. 

/* Use WPCF7_Submission object's get_posted_data() method to get it. */ 
$submission = WPCF7_Submission::get_instance(); 

if ($submission) { 
    $posted_data = $submission->get_posted_data(); 
} 

此外,标题属性不能从版本3.9开始。请看下图:

/* Don't do this, since title property is no longer accessible. */ 
$id = $contact_form->title; // Wrong. 

/* Use id() method instead. */ 
$id = $contact_form->title(); 

在你的情况,你的函数将是:

function your_wpcf7_mail_sent_function($contact_form) { 

    $title = $contact_form->title(); 
    $submission = WPCF7_Submission::get_instance(); 

    if ($submission) { 
     $posted_data = $submission->get_posted_data(); 
    } 

    if ('smsservice' == $title) { 
     $phone = $posted_data['phone']; 
     require_once 'http://myurl.com/smsservice/send_sms.php'; 
    } 

} 

要看到联系表7检查changelog所有更改。

0

那么即使我已经尝试过,但联系表单7并不是短信警报似乎的好选择。

在我的情况下,我使用了完美工作的重力形式。