WordPress — контактная форма 7 для отправителя SMS SMS

Я использую форму контактной формы 7, чтобы поймать телефонный номер пользователя в полевом телефоне, чтобы отправить ему 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);

Однако каждый раз, когда я заполняю форму, она ничего не делает. Даже не отправить форму. Тем не менее, из кода PHP я не могу найти ошибку. Кто-нибудь еще?

С наилучшими пожеланиями,
Себ

-1

Решение

Если вы используете версию 3.9 или более позднюю версию контактной формы 7, свойство posts_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();
}

Также свойство title недоступно с версии 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, проверьте изменений.

0

Другие решения

Ну, даже я пробовал то же самое, но контактная форма 7 не является хорошим вариантом, как кажется для SMS-оповещения.

В моем случае я использовал гравитационные формы, которые работают отлично.

0

По вопросам рекламы [email protected]