به نام دانای بر حق
در سایت هایی که با وردپرس ساخته میشن Contact Form 7 یکی از بهترین راهکار برای قرار دادن فرم در سایت هست. شاید براتون مساله شده باشه که اطلاعات این فرم ها علاوه بر سایت در جای دیگه ای مثلا سامانه ارتباط با مشتریان هم ذخیره بشه یا ایمیل ؛ پیامک خاصی بعد از ارسال فرم فرستاده بشه.برای اینکار خود افزونه گزینه ی خاصی در اختیارمون قرار نمیده. اما ما می تونیم با یه هوک به توابع افزونه این کار رو انجام بدیم. این کار بر روی آخرین ورژن افزونه یعنی ۳/۹ جواب میده:
کد های زیر رو در فایل functions.php قالب فعال سایت قرار بدبد:
add_action('wpcf7_mail_sent', 'send_to_another_site'); function curl_post($url, array $post = NULL, array $options = array()) { $defaults = array( CURLOPT_POST => 1, CURLOPT_HEADER => 0, CURLOPT_URL => $url, CURLOPT_FRESH_CONNECT => 1, CURLOPT_RETURNTRANSFER => 1, CURLOPT_FORBID_REUSE => 1, CURLOPT_TIMEOUT => 4, CURLOPT_POSTFIELDS => http_build_query($post) ); $ch = curl_init(); curl_setopt_array($ch, ($options + $defaults)); if (!$result = curl_exec($ch)) { trigger_error(curl_error($ch)); } curl_close($ch); return $result; } function send_to_another_site($form) { $url = 'http://www.mysite.ir/usersinfo.php'; $submission = WPCF7_Submission::get_instance(); $posted_data= $submission->get_posted_data(); $posted_data['title'] = $form->title; curl_post($url, $posted_data); }
توضیحات کد:
۱- تابعی برای اجرا بعد از wpcf7_mail_sent مشخص میکنیم. wpcf7_mail_sent تابعی است که افزونه بعد از تمامی اعتبار سنجی و… برای ارسال اطلاعات فرم استفاده می کنه.
۴- این تابع با استفاده از cUrl اطلاعات رو به آدرس مورد نظر میفرسته.
۲۷- اطلاعات فرم رو به صورت آرایه بدست میاریم.
۲۸- عنوان فرم مورد نظر.
۲۹- فرستادن اطلاعات فرم به آدرس مورد نظر.
حالا کافیه که در mysite.ir/usersinfo.php اطلاعات رو آنالیز و دریافت کنیم. توجه کنید که ما اطلاعات فرم رو به صورت متد POST فرستادیم.
امیدوارم که این ترفند برای مخاطبان سایت مفید واقع بشه.
دیدگاهتان را بنویسید لغو پاسخ