联系表格7到PHP SMS发送
问题描述:
我用一个联系表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代码我似乎无法找到一个错误。其他人?
最好的问候, 勒布
答
如果您使用的版本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所有更改。
答
那么即使我已经尝试过,但联系表单7并不是短信警报似乎的好选择。
在我的情况下,我使用了完美工作的重力形式。