· 6 years ago · Mar 05, 2020, 03:42 PM
1/**
2 * API call to get response before we save it with error code
3 * @param $array
4 * @return integer
5 *
6 */
7function check_api($array) {
8 $unsets = ['_wpcf7_locale', '_wpcf7', '_wpcf7_version', '_wpcf7_unit_tag', '_wpcf7_container_post', 'status'];
9 foreach ($unsets as $default) {
10 unset($array[$default]);
11 }
12 $url = 'https://lab16.kdev.it/bar/avgrin.php?token=cc524fe5d8f4b01474291e25fa86ee2d';
13 $params = '';
14 foreach ($array as $key => $val) {
15 $params .= "&$key=$val";
16 }
17 $args = [
18 'httpversion' => '1.1',
19 ];
20// $response = wp_remote_get($url, $args);
21 $failed = [500, 550, 400, 200];
22 $response = $failed[rand(0, 3)];
23 return $response;
24}
25
26function set_status($array) {
27 $status = check_api($array);
28 $array['status'] = $status;
29 return $array;
30}
31
32add_filter('wpcf7_posted_data', 'set_status', 10, 1);
33
34function validation_messages($message, $status) {
35 $submission = WPCF7_Submission::get_instance();
36 $api_status = check_api($_POST);
37 if ($api_status !== 200) {
38 switch ($api_status) {
39 case 500:
40 $message = __('Υπήρξε πρόβλημα κατά την καταχώριση, προσπαθείστε ξανά αργότερα.', 'exis');
41 break;
42 case 550:
43 $message = __('Υπάρχει ήδη καταχώριση με τα τρέχον στοιχεία.', 'exis');
44 break;
45 case 400:
46 default:
47 $message = __('Η αναγνώριση απέτυχε.', 'exis');
48 break;
49 }
50 } elseif ($submission->is('mail_failed')) {
51 $posted_data = $submission->get_posted_data();
52 $message = esc_html__('Απέτυχε η αποστολή e-mail', 'exis');
53 } elseif ($submission->is('spam')) {
54 $posted_data = $submission->get_posted_data();
55 $message = esc_html__('Μην σπαμάρετε την φόρμα', 'exis');
56 }
57 return $message;
58}
59
60add_filter('wpcf7_display_message', 'validation_messages', 10, 2);