Changeset 3303097
- Timestamp:
- 05/29/2025 04:12:42 PM (7 months ago)
- Location:
- checkview
- Files:
-
- 12 edited
- 1 copied
-
tags/2.0.18 (copied) (copied from checkview/trunk)
-
tags/2.0.18/README.txt (modified) (3 diffs)
-
tags/2.0.18/checkview.php (modified) (2 diffs)
-
tags/2.0.18/includes/API/class-checkview-api.php (modified) (86 diffs)
-
tags/2.0.18/includes/checkview-functions.php (modified) (1 diff)
-
tags/2.0.18/includes/class-checkview.php (modified) (3 diffs)
-
tags/2.0.18/includes/woocommercehelper/class-checkview-woo-automated-testing.php (modified) (2 diffs)
-
trunk/README.txt (modified) (3 diffs)
-
trunk/checkview.php (modified) (2 diffs)
-
trunk/includes/API/class-checkview-api.php (modified) (86 diffs)
-
trunk/includes/checkview-functions.php (modified) (1 diff)
-
trunk/includes/class-checkview.php (modified) (3 diffs)
-
trunk/includes/woocommercehelper/class-checkview-woo-automated-testing.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
checkview/tags/2.0.18/README.txt
r3296900 r3303097 8 8 License: GPLv3 9 9 License URI: http://www.gnu.org/licenses/gpl-3.0.html 10 Stable tag: 2.0.1 710 Stable tag: 2.0.18 11 11 12 12 [CheckView](https://checkview.io/) is the friendly WordPress automated testing platform for everyone, from developers, shop owners to agencies. … … 86 86 87 87 == Changelog == 88 = 2.0.18 = 89 * Improve logging when querying for available test results. 90 * Increase JWT leeway. 91 * Remove unreachable/unnecessary code. 92 * Retrieve WooCommerce order IDs via method instead of protected property. 93 88 94 = 2.0.17 = 89 95 * Add polyfill for array_find function. … … 354 360 355 361 == Upgrade Notice == 362 = 2.0.18 = 363 * Improve logging when querying for available test results. 364 * Increase JWT leeway. 365 * Remove unreachable/unnecessary code. 366 * Retrieve WooCommerce order IDs via method instead of protected property. 367 356 368 = 2.0.17 = 357 369 * Add polyfill for array_find function. -
checkview/tags/2.0.18/checkview.php
r3296900 r3303097 12 12 * Plugin URI: https://checkview.io 13 13 * Description: CheckView is the #1 fully automated solution to test your WordPress forms and detect form problems fast. Automatically test your WordPress forms to ensure you never miss a lead again. 14 * Version: 2.0.1 714 * Version: 2.0.18 15 15 * Author: CheckView 16 16 * Author URI: https://checkview.io/ … … 36 36 * @link https://semver.org 37 37 */ 38 define( 'CHECKVIEW_VERSION', '2.0.1 7' );38 define( 'CHECKVIEW_VERSION', '2.0.18' ); 39 39 40 40 if ( ! defined( 'CHECKVIEW_BASE_DIR' ) ) { -
checkview/tags/2.0.18/includes/API/class-checkview-api.php
r3236719 r3303097 19 19 class CheckView_Api { 20 20 /** 21 * Plugin name.21 * Woo Helper class. 22 22 * 23 23 * @since 1.0.0 24 24 * @access private 25 25 * 26 * @var string $plugin_name The ID of this plugin. 27 */ 28 private $plugin_name; 29 30 /** 31 * Plugin version. 26 * @var bool/Checkview_Woo_Automated_Testing $woo_helper The woo helper of this plugin. 27 */ 28 private $woo_helper; 29 /** 30 * Holds the JWT error. 31 * 32 * @var WP_Error 33 */ 34 public $jwt_error = null; 35 /** 36 * Constructor. 37 * 38 * Sets class properties. 32 39 * 33 40 * @since 1.0.0 34 * @access private 35 * 36 * @var string $version The current version of this plugin. 37 */ 38 private $version; 39 40 /** 41 * Woo Helper class. 42 * 43 * @since 1.0.0 44 * @access private 45 * 46 * @var bool/Checkview_Woo_Automated_Testing $woo_helper The woo helper of this plugin. 47 */ 48 private $woo_helper; 49 /** 50 * Holds the JWT error. 51 * 52 * @var WP_Error 53 */ 54 public $jwt_error = null; 55 /** 56 * Constructor. 57 * 58 * Sets class properties. 59 * 60 * @since 1.0.0 61 * 62 * @param string $plugin_name The name of the plugin. 63 * @param string $version The version of this plugin. 64 * @param class $woo_helper The woohelper class. 65 */ 66 public function __construct( $plugin_name, $version, $woo_helper = '' ) { 67 68 $this->plugin_name = $plugin_name; 69 $this->version = $version; 41 * 42 * @param Checkview_Woo_Automated_Testing $woo_helper The woohelper class. 43 */ 44 public function __construct( $woo_helper = '' ) { 70 45 $this->woo_helper = $woo_helper; 71 46 } 47 72 48 /** 73 49 * Registers API routes. … … 456 432 ) 457 433 );// end checkview_register_rest_route. 458 459 register_rest_route(460 'checkview/v1',461 '/confirm-site',462 array(463 'methods' => 'POST',464 'callback' => array( $this, 'checkview_confirm_site_callback' ),465 'permission_callback' => '__return_true', // Restrict access as needed.466 )467 );468 434 } 469 435 … … 476 442 * 477 443 * @param WP_REST_Request $request Request object. 478 * @return WP_REST_Response /json444 * @return WP_REST_Response|WP_Error 479 445 */ 480 446 public function checkview_get_available_orders( WP_REST_Request $request ) { 481 447 if ( ! class_exists( 'WooCommerce' ) ) { 482 448 Checkview_Admin_Logs::add( 'api-logs', 'WooCommerce not found.' ); 449 483 450 return new WP_REST_Response( 484 451 array( … … 504 471 if ( isset( $this->jwt_error ) && null !== $this->jwt_error ) { 505 472 Checkview_Admin_Logs::add( 'api-logs', $this->jwt_error ); 473 506 474 return new WP_Error( 507 475 400, 508 476 esc_html__( 'Invalid request.', 'checkview' ), 509 477 ); 510 wp_die();511 478 } 512 479 … … 519 486 ) 520 487 ); 521 wp_die();522 488 } 523 489 $orders = array(); … … 526 492 } 527 493 528 $per_page = - 1;494 $per_page = - 1; 529 495 530 496 $params = array(); 531 497 532 498 $args = array( 533 'limit' => - 1,499 'limit' => - 1, 534 500 'payment_method' => 'checkview', 535 501 'meta_query' => array( … … 564 530 if ( $wc_orders ) { 565 531 foreach ( $wc_orders as $order ) { 566 $order_object = new WC_Order( $order-> id);567 $order_details['order_id'] = $order-> id;532 $order_object = new WC_Order( $order->get_id() ); 533 $order_details['order_id'] = $order->get_id(); 568 534 $order_details['customer_id'] = $order_object->get_customer_id(); 569 535 $orders[] = $order_details; … … 575 541 if ( $orders && ! empty( $orders ) && false !== $orders && '' !== $orders ) { 576 542 set_transient( 'checkview_store_orders_transient', $orders, 12 * HOUR_IN_SECONDS ); 543 577 544 return new WP_REST_Response( 578 545 array( … … 591 558 ); 592 559 } 593 wp_die();594 560 } 595 561 … … 598 564 * 599 565 * @param WP_REST_Request $request Request object. 600 * @return WP_REST_Response /json566 * @return WP_REST_Response|WP_Error 601 567 */ 602 568 public function checkview_get_available_order_details( WP_REST_Request $request ) { … … 620 586 esc_html__( 'Invalid request.', 'checkview' ), 621 587 ); 622 wp_die();623 588 } 624 589 … … 775 740 ); 776 741 } 777 wp_die();778 742 } 779 743 /** … … 781 745 * 782 746 * @param WP_REST_Request $request Request object. 783 * @return WP_REST_Response /json747 * @return WP_REST_Response|WP_Error 784 748 */ 785 749 public function checkview_get_available_products( WP_REST_Request $request ) { … … 806 770 esc_html__( 'Invalid request.', 'checkview' ), 807 771 ); 808 wp_die();809 772 } 810 773 if ( '' !== $products && null !== $products && false !== $products ) { … … 816 779 ) 817 780 ); 818 wp_die();819 781 } 820 782 $products = array(); … … 905 867 ); 906 868 } 907 wp_die();908 869 } 909 870 … … 913 874 * Firstly, attempts to retrieve details from the cache. 914 875 * 915 * @return WP_REST_Response 876 * @return WP_REST_Response|WP_Error 916 877 */ 917 878 public function checkview_get_available_shipping_details() { … … 935 896 esc_html__( 'Invalid request.', 'checkview' ), 936 897 ); 937 wp_die();938 898 } 939 899 if ( '' !== $shipping_details && null !== $shipping_details && false !== $shipping_details ) { … … 945 905 ) 946 906 ); 947 wp_die();948 907 } 949 908 $country_class = new WC_Countries(); … … 1028 987 ); 1029 988 } 1030 wp_die();1031 989 } 1032 990 /** … … 1034 992 * 1035 993 * @param WP_REST_Request $request Request object. 1036 * @return WP_REST_Response /WP_Error/json994 * @return WP_REST_Response|WP_Error 1037 995 */ 1038 996 public function checkview_delete_orders( WP_REST_Request $request ) { … … 1053 1011 esc_html__( 'Invalid request.', 'checkview' ), 1054 1012 ); 1055 wp_die();1056 1013 } 1057 1014 global $wpdb; … … 1099 1056 ) 1100 1057 ); 1101 wp_die();1102 1058 } else { 1103 1059 Checkview_Admin_Logs::add( 'api-logs', 'Empty records.' ); … … 1106 1062 esc_html__( 'An error occurred while processing your request.', 'checkview' ), 1107 1063 ); 1108 wp_die();1109 1064 } 1110 1065 } … … 1113 1068 * Retrieves information from the site's WooCommerce API cart endpoint. 1114 1069 * 1115 * @return WP_REST_Response /WP_Error/json1070 * @return WP_REST_Response|WP_Error 1116 1071 */ 1117 1072 public function checkview_get_cart_details() { … … 1132 1087 esc_html__( 'Invalid request.', 'checkview' ), 1133 1088 ); 1134 wp_die();1135 1089 } 1136 1090 $url = home_url( 'wp-json/wc/store/v1/cart' ); … … 1159 1113 esc_html__( 'There was a technical issue while processing your request', 'checkview' ), 1160 1114 ); 1161 wp_die();1162 1115 } else { 1163 1116 $body = wp_remote_retrieve_body( $response ); … … 1175 1128 ) 1176 1129 ); 1177 wp_die();1178 1130 } else { 1179 1131 return new WP_Error( … … 1181 1133 esc_html__( 'An error occurred while processing your request.', 'checkview' ), 1182 1134 ); 1183 wp_die();1184 1135 } 1185 1136 } … … 1188 1139 * Retrieves a list of active payment gateways. 1189 1140 * 1190 * @return WP_REST_Response /WP_Error/json1141 * @return WP_REST_Response|WP_Error 1191 1142 */ 1192 1143 public function checkview_get_active_payment_gateways() { … … 1207 1158 esc_html__( 'Invalid request.', 'checkview' ), 1208 1159 ); 1209 wp_die();1210 1160 } 1211 1161 $active_gateways = $this->woo_helper->get_active_payment_gateways(); … … 1218 1168 ) 1219 1169 ); 1220 wp_die();1221 1170 } else { 1222 1171 // Log the detailed error for internal use. … … 1229 1178 ), 1230 1179 ); 1231 wp_die();1232 1180 } 1233 1181 } … … 1236 1184 * Creates the testing customer. 1237 1185 * 1238 * @return WP_REST_Response /WP_Error/json1186 * @return WP_REST_Response|WP_Error 1239 1187 */ 1240 1188 public function checkview_create_test_customer() { … … 1255 1203 esc_html__( 'Invalid request.', 'checkview' ), 1256 1204 ); 1257 wp_die();1258 1205 } 1259 1206 $customer = $this->woo_helper->checkview_create_test_customer(); … … 1266 1213 ) 1267 1214 ); 1268 wp_die();1269 1215 } else { 1270 1216 Checkview_Admin_Logs::add( 'api-logs', 'Failed to create the customer.' ); … … 1273 1219 esc_html__( 'An error occurred while processing your request.', 'checkview' ), 1274 1220 ); 1275 wp_die();1276 1221 } 1277 1222 } … … 1280 1225 * Retrieves credentials about the testing customer. 1281 1226 * 1282 * @return WP_REST_Response /WP_Error/json1227 * @return WP_REST_Response|WP_Error 1283 1228 */ 1284 1229 public function checkview_get_test_customer_credentials() { … … 1299 1244 esc_html__( 'Invalid request.', 'checkview' ), 1300 1245 ); 1301 wp_die();1302 1246 } 1303 1247 $customer = $this->woo_helper->checkview_get_test_credentials(); … … 1310 1254 ) 1311 1255 ); 1312 wp_die();1313 1256 } else { 1314 1257 Checkview_Admin_Logs::add( 'api-logs', 'Failed to retrieve the customer.' ); … … 1317 1260 esc_html__( 'An error occurred while processing your request.', 'checkview' ), 1318 1261 ); 1319 wp_die();1320 1262 } 1321 1263 } … … 1327 1269 * 1328 1270 * @param WP_REST_Request $request Request object. 1329 * @return WP_REST_Response /WP_Error/json1271 * @return WP_REST_Response|WP_Error 1330 1272 */ 1331 1273 public function checkview_verify_test_user_credentials( WP_REST_Request $request ) { … … 1336 1278 esc_html__( 'Invalid request.', 'checkview' ), 1337 1279 ); 1338 wp_die();1339 1280 } 1340 1281 $user_email = $request->get_param( 'user_email' ); 1341 $user_email = isset( $user_email ) ? sanitize_email( user_email ) : null;1282 $user_email = isset( $user_email ) ? sanitize_email( $user_email ) : null; 1342 1283 if ( null === $user_email || empty( $user_email ) ) { 1343 1284 return new WP_Error( … … 1345 1286 esc_html__( 'An error occurred while processing your request.', 'checkview' ), 1346 1287 ); 1347 wp_die();1348 1288 } 1349 1289 $user = email_exists( $user_email ); … … 1357 1297 ) 1358 1298 ); 1359 wp_die();1360 1299 } else { 1361 1300 Checkview_Admin_Logs::add( 'api-logs', 'Failed to retrieve the user.' ); … … 1364 1303 esc_html__( 'An error occurred while processing your request.', 'checkview' ), 1365 1304 ); 1366 wp_die();1367 1305 } 1368 1306 } … … 1372 1310 * 1373 1311 * @param WP_REST_Request $request Request object. 1374 * @return WP_REST_Response /WP_Error/json1312 * @return WP_REST_Response|WP_Error 1375 1313 */ 1376 1314 public function checkview_delete_test_user_credentials( WP_REST_Request $request ) { … … 1381 1319 esc_html__( 'Invalid request.', 'checkview' ), 1382 1320 ); 1383 wp_die();1384 1321 } 1385 1322 $user_email = $request->get_param( 'user_email' ); 1386 $user_email = isset( $user_email ) ? sanitize_email( user_email ) : null;1323 $user_email = isset( $user_email ) ? sanitize_email( $user_email ) : null; 1387 1324 if ( null === $user_email || empty( $user_email ) ) { 1388 1325 return new WP_Error( … … 1390 1327 esc_html__( 'An error occurred while processing your request.', 'checkview' ), 1391 1328 ); 1392 wp_die();1393 1329 } 1394 1330 $user = email_exists( $user_email ); … … 1406 1342 ) 1407 1343 ); 1408 wp_die();1409 1344 } else { 1410 1345 Checkview_Admin_Logs::add( 'api-logs', 'Failed to delete the user.' ); … … 1413 1348 esc_html__( 'An error occurred while processing your request.', 'checkview' ), 1414 1349 ); 1415 wp_die(); 1416 } 1417 wp_die(); 1350 } 1418 1351 } else { 1419 1352 Checkview_Admin_Logs::add( 'api-logs', 'Failed to retrieve the user.' ); … … 1422 1355 esc_html__( 'An error occurred while processing your request.', 'checkview' ), 1423 1356 ); 1424 wp_die();1425 1357 } 1426 1358 } … … 1431 1363 * Retrieves a list of shipping and selling locations. 1432 1364 * 1433 * @return WP_REST_Response /json1365 * @return WP_REST_Response|WP_Error 1434 1366 */ 1435 1367 public function checkview_get_store_locations() { … … 1450 1382 esc_html__( 'Invalid request.', 'checkview' ), 1451 1383 ); 1452 wp_die();1453 1384 } 1454 1385 $selling_locations = array(); … … 1474 1405 ) 1475 1406 ); 1476 wp_die();1477 1407 } else { 1478 1408 Checkview_Admin_Logs::add( 'api-logs', 'Failed to retrieve the store locations.' ); … … 1481 1411 esc_html__( 'An error occurred while processing your request.', 'checkview' ), 1482 1412 ); 1483 wp_die();1484 1413 } 1485 1414 } … … 1488 1417 * Retrieves the permalink of the test product. 1489 1418 * 1490 * @return WP_REST_Response /json1419 * @return WP_REST_Response|WP_Error 1491 1420 */ 1492 1421 public function checkview_get_store_test_product() { … … 1507 1436 esc_html__( 'Invalid request.', 'checkview' ), 1508 1437 ); 1509 wp_die();1510 1438 } 1511 1439 $product = $this->woo_helper->checkview_get_test_product(); … … 1519 1447 ) 1520 1448 ); 1521 wp_die();1522 1449 } else { 1523 1450 Checkview_Admin_Logs::add( 'api-logs', 'Failed to retrieve the test product.' ); … … 1526 1453 esc_html__( 'An error occurred while processing your request.', 'checkview' ), 1527 1454 ); 1528 wp_die();1529 1455 } 1530 1456 } … … 1533 1459 * Retrieves a list of supported forms used throughout the site. 1534 1460 * 1535 * @return WP_REST_Response /json1461 * @return WP_REST_Response|WP_Error 1536 1462 */ 1537 1463 public function checkview_get_available_forms_list() { … … 1544 1470 esc_html__( 'Invalid request.', 'checkview' ), 1545 1471 ); 1546 wp_die();1547 1472 } 1548 1473 // Temporarily suppress errors. … … 1557 1482 ) 1558 1483 ); 1559 wp_die();1560 1484 } 1561 1485 $forms = array(); … … 2003 1927 ); 2004 1928 } 2005 wp_die();2006 1929 } 2007 1930 … … 2010 1933 * 2011 1934 * @param WP_REST_Request $request Request param with the API call. 2012 * @return WP_REST_Response /WP_Error/json1935 * @return WP_REST_Response|WP_Error 2013 1936 */ 2014 1937 public function checkview_get_available_forms_test_results( WP_REST_Request $request ) { 2015 1938 global $wpdb; 1939 2016 1940 $uid = $request->get_param( 'uid' ); 2017 1941 $uid = isset( $uid ) ? sanitize_text_field( $uid ) : null; 2018 1942 $results = array(); 1943 2019 1944 if ( '' === $uid || null === $uid ) { 2020 1945 Checkview_Admin_Logs::add( 'api-logs', $this->jwt_error ); 2021 return new WP_Error( 2022 400,2023 esc_html__( 'Insuficient data.', 'checkview' ),2024 );2025 wp_die();1946 1947 return new WP_Error( 1948 400, 1949 esc_html__( 'Insufficient data.', 'checkview' ), 1950 ); 2026 1951 } else { 2027 $tablename = $wpdb->prefix . 'cv_entry'; 2028 $result = $wpdb->get_row( $wpdb->prepare( 'Select * from ' . $tablename . ' where uid=%s', $uid ) ); 2029 $tablename = $wpdb->prefix . 'cv_entry_meta'; 2030 $rows = $wpdb->get_results( $wpdb->prepare( 'Select * from ' . $tablename . ' where uid=%s order by id ASC', $uid ) ); 2031 if ( $rows ) { 2032 foreach ( $rows as $row ) { 2033 if ( 'gravityforms' === strtolower( $result->form_type ) ) { 2034 $results[] = array( 2035 'field_id' => 'input_' . $row->form_id . '_' . str_replace( '.', '_', $row->meta_key ), 2036 'field_value' => $row->meta_value, 2037 ); 2038 2039 } elseif ( 'cf7' === strtolower( $result->form_type ) ) { 2040 $value = $row->meta_value; 2041 if ( strpos( $value, 'htt' ) !== false ) { 2042 $value = html_entity_decode( $value ); 2043 } 2044 $results[] = array( 2045 'field_id' => '', 2046 'field_name' => $row->meta_key, 2047 'field_value' => $value, 2048 ); 2049 } elseif ( 'Forminator' === $result->form_type ) { 2050 $value = $row->meta_value; 2051 if ( strpos( $value, 'htt' ) !== false ) { 2052 $value = html_entity_decode( $value ); 2053 } 2054 $results[] = array( 2055 'field_id' => '', 2056 'field_name' => $row->meta_key, 2057 'field_value' => $value, 2058 ); 2059 } else { 2060 2061 $results[] = array( 2062 'field_id' => $row->meta_key, 2063 'field_value' => maybe_unserialize( $row->meta_value ), 2064 ); 1952 $table_name = $wpdb->prefix . 'cv_entry'; 1953 $query = $wpdb->prepare( 'Select * from ' . $table_name . ' where uid=%s', $uid ); 1954 $query_as_json = wp_json_encode( array( 'query' => $query ) ); 1955 $result = $wpdb->get_row( $query ); // We expect an object 1956 1957 if ( is_null( $result ) ) { 1958 Checkview_Admin_Logs::add( 'api-logs', 'Failed to find test results (query [' . $query_as_json . '] returned null).' ); 1959 1960 return new WP_Error( 1961 400, 1962 esc_html__( 'Failed to find test results (query [' . $query_as_json . '] returned null).', 'checkview' ), 1963 ); 1964 } 1965 1966 if ( ! is_object( $result ) ) { 1967 Checkview_Admin_Logs::add( 'api-logs', 'Failed to find test results (query [' . $query_as_json . '] returned unexpected type [' . gettype( $result ) . ']).' ); 1968 1969 return new WP_Error( 1970 400, 1971 esc_html__( 'Failed to find test results (query [' . $query_as_json . '] returned unexpected type [' . gettype( $result ) . ']).', 'checkview' ), 1972 ); 1973 } 1974 1975 $table_name = $wpdb->prefix . 'cv_entry_meta'; 1976 $query = $wpdb->prepare( 'Select * from ' . $table_name . ' where uid=%s order by id ASC', $uid ); 1977 $meta_query_as_json = wp_json_encode( array( 'query' => $query ) ); 1978 $rows = $wpdb->get_results( $query ); // We expect an array of objects 1979 1980 if ( is_null( $rows ) ) { 1981 Checkview_Admin_Logs::add( 'api-logs', 'Failed to find test results (query [' . $meta_query_as_json . '] returned null).' ); 1982 1983 return new WP_Error( 1984 400, 1985 esc_html__( 'Failed to find test results (query [' . $meta_query_as_json . '] returned null).', 'checkview' ), 1986 ); 1987 } 1988 1989 if ( ! is_array( $rows ) ) { 1990 Checkview_Admin_Logs::add( 'api-logs', 'Failed to find test results (query [' . $meta_query_as_json . '] returned unexpected type [' . gettype( $rows ) . ']).' ); 1991 1992 return new WP_Error( 1993 400, 1994 esc_html__( 'Failed to find test results (query [' . $meta_query_as_json . '] returned unexpected type [' . gettype( $rows ) . ']).', 'checkview' ), 1995 ); 1996 } 1997 1998 foreach ( $rows as $row ) { 1999 if ( 'gravityforms' === strtolower( $result->form_type ) ) { 2000 $results[] = array( 2001 'field_id' => 'input_' . $row->form_id . '_' . str_replace( '.', '_', $row->meta_key ), 2002 'field_value' => $row->meta_value, 2003 ); 2004 } elseif ( 'cf7' === strtolower( $result->form_type ) ) { 2005 $value = $row->meta_value; 2006 2007 if ( strpos( $value, 'htt' ) !== false ) { 2008 $value = html_entity_decode( $value ); 2065 2009 } 2066 } 2067 if ( ! empty( $results ) && false !== $results ) { 2068 return new WP_REST_Response( 2069 array( 2070 'status' => 200, 2071 'response' => esc_html__( 'Successfully retrieved the results.', 'checkview' ), 2072 'body_response' => $results, 2073 ) 2010 2011 $results[] = array( 2012 'field_id' => '', 2013 'field_name' => $row->meta_key, 2014 'field_value' => $value, 2015 ); 2016 } elseif ( 'Forminator' === $result->form_type ) { 2017 $value = $row->meta_value; 2018 2019 if ( strpos( $value, 'htt' ) !== false ) { 2020 $value = html_entity_decode( $value ); 2021 } 2022 2023 $results[] = array( 2024 'field_id' => '', 2025 'field_name' => $row->meta_key, 2026 'field_value' => $value, 2074 2027 ); 2075 2028 } else { 2076 Checkview_Admin_Logs::add( 'api-logs', 'Failed to retrieve the results.' ); 2077 return new WP_Error( 2078 400, 2079 esc_html__( 'An error occurred while processing your request.', 'checkview' ), 2029 $results[] = array( 2030 'field_id' => $row->meta_key, 2031 'field_value' => maybe_unserialize( $row->meta_value ), 2080 2032 ); 2081 2033 } 2082 wp_die(); 2083 } else { 2084 Checkview_Admin_Logs::add( 'api-logs', 'Failed to retrieve the results.' ); 2085 return new WP_Error( 2086 400, 2087 esc_html__( 'An error occurred while processing your request.', 'checkview' ), 2034 } 2035 2036 if ( ! empty( $results ) ) { 2037 return new WP_REST_Response( 2038 array( 2039 'status' => 200, 2040 'response' => esc_html__( 'Successfully retrieved the results.', 'checkview' ), 2041 'body_response' => $results, 2042 ) 2088 2043 ); 2089 wp_die(); 2090 } 2044 } 2045 Checkview_Admin_Logs::add( 'api-logs', 'Failed to find test results (rows were found, but results were determined to be empty).' ); 2046 2047 return new WP_Error( 2048 400, 2049 esc_html__( 'Failed to find test results (rows were found, but results were determined to be empty).', 'checkview' ), 2050 ); 2091 2051 } 2092 2052 } … … 2098 2058 * 2099 2059 * @param WP_REST_Request $request Object with the API call. 2100 * @return WP_REST_Response /WP_Error2060 * @return WP_REST_Response|WP_Error 2101 2061 */ 2102 2062 public function checkview_register_form_test( WP_REST_Request $request ) { … … 2124 2084 ) 2125 2085 ); 2126 wp_die();2127 2086 } else { 2128 2087 Checkview_Admin_Logs::add( 'api-logs', sanitize_text_field( 'Details to register form test are not correct.' ) ); … … 2131 2090 esc_html__( 'An error occurred while processing your request.', 'checkview' ), 2132 2091 ); 2133 wp_die();2134 2092 } 2135 2093 } … … 2141 2099 * 2142 2100 * @param WP_REST_Request $request Request param with the API call. 2143 * @return WP_REST_Response /WP_Error/json2101 * @return WP_REST_Response|WP_Error 2144 2102 */ 2145 2103 public function checkview_delete_forms_test_results( WP_REST_Request $request ) { … … 2160 2118 esc_html__( 'Insuficient data.', 'checkview' ), 2161 2119 ); 2162 wp_die();2163 2120 } else { 2164 2121 $rows = true; … … 2171 2128 ) 2172 2129 ); 2173 wp_die();2174 2130 } else { 2175 2131 Checkview_Admin_Logs::add( 'api-logs', sanitize_text_field( 'Failed to remove the results.' ) ); … … 2178 2134 esc_html__( 'An error occurred while processing your request.', 'checkview' ), 2179 2135 ); 2180 wp_die();2181 2136 } 2182 2137 } … … 2189 2144 * version, and the admin AJAX url. 2190 2145 * 2191 * @return WP_Rest_Response Forms details.2146 * @return WP_Rest_Response|WP_Error 2192 2147 */ 2193 2148 public function checkview_saas_get_site_info() { … … 2274 2229 * 2275 2230 * @param WP_REST_Request $request WP_Request object. 2276 * @return Json/WPError2231 * @return WP_REST_Response|WP_Error 2277 2232 */ 2278 2233 public function checkview_saas_get_plugin_version( WP_REST_Request $request ) { … … 2284 2239 esc_html__( 'Invalid request.', 'checkview' ), 2285 2240 ); 2286 wp_die();2287 2241 } 2288 2242 // Get all plugins. … … 2341 2295 * Returns plugin logs. 2342 2296 * 2343 * @return WP_R est_Response log details.2297 * @return WP_REST_Response|WP_Error 2344 2298 */ 2345 2299 public function checkview_saas_get_helper_logs() { … … 2400 2354 * Sets status for helper plugin. 2401 2355 * 2402 * @param \WP_REST_Request $request wp request object.2403 * @return WP_ Error/WP_REST_RESPONSE2356 * @param WP_REST_Request $request wp request object. 2357 * @return WP_REST_Response|WP_Error 2404 2358 */ 2405 2359 public function checkview_saas_set_helper_status( \WP_REST_Request $request ) { … … 2430 2384 2431 2385 /** 2432 * Sets status for test product. .2433 * 2434 * @param \WP_REST_Request $request wp request object.2435 * @return WP_ Error/WP_REST_RESPONSE2386 * Sets status for test product. 2387 * 2388 * @param WP_REST_Request $request wp request object. 2389 * @return WP_REST_Response|WP_Error 2436 2390 */ 2437 2391 public function checkview_saas_set_test_product_status( \WP_REST_Request $request ) { … … 2452 2406 esc_html__( 'Invalid request.', 'checkview' ), 2453 2407 ); 2454 wp_die();2455 2408 } 2456 2409 // Get the status from the request parameters. … … 2492 2445 * On success, stores the nonce token so it will not be used again. 2493 2446 * 2494 * @param \WP_REST_Request $request request data with the api call.2495 * @return json/array2447 * @param WP_REST_Request $request request data with the api call. 2448 * @return WP_Error|array 2496 2449 */ 2497 2450 public function checkview_get_items_permissions_check( \WP_REST_Request $request ) { … … 2508 2461 '' 2509 2462 ); 2510 wp_die();2511 2463 } 2512 2464 … … 2518 2470 array( 'status' => 400 ) 2519 2471 ); 2520 wp_die();2521 2472 } 2522 2473 $nonce_token = checkview_validate_jwt_token( $auth_header ); … … 2531 2482 '' 2532 2483 ); 2533 wp_die();2534 2484 } 2535 2485 if ( ! checkview_is_valid_uuid( $nonce_token ) ) { … … 2540 2490 '' 2541 2491 ); 2542 wp_die();2543 2492 } 2544 2493 global $wpdb; … … 2587 2536 '' 2588 2537 ); 2589 wp_die();2590 2538 } else { 2591 2539 // Store the nonce in the database. … … 2603 2551 ) 2604 2552 ); 2605 wp_die();2606 2553 } 2607 2554 } -
checkview/tags/2.0.18/includes/checkview-functions.php
r3296900 r3303097 75 75 try { 76 76 // Allow one-second leeway for JWT tokens 77 JWT::$leeway = 1;77 JWT::$leeway = 5; 78 78 $decoded = JWT::decode( $token, new Key( $key, 'RS256' ) ); 79 79 } catch ( Exception $e ) { -
checkview/tags/2.0.18/includes/class-checkview.php
r3296900 r3303097 55 55 * @access private 56 56 * 57 * @var class$instance The instance of the class.57 * @var Checkview $instance The instance of the class. 58 58 */ 59 59 … … 71 71 $this->version = CHECKVIEW_VERSION; 72 72 } else { 73 $this->version = '2.0.1 7';73 $this->version = '2.0.18'; 74 74 } 75 75 $this->plugin_name = 'checkview'; … … 154 154 155 155 // Initialize the plugin's API. 156 $plugin_api = new CheckView_Api( $ this->get_plugin_name(), $this->get_version(), $woo_helper );156 $plugin_api = new CheckView_Api( $woo_helper ); 157 157 158 158 // Hook our routes into WordPress. -
checkview/tags/2.0.18/includes/woocommercehelper/class-checkview-woo-automated-testing.php
r3283610 r3303097 73 73 * @param string $plugin_name The name of this plugin. 74 74 * @param string $version The version of this plugin. 75 * @param string$loader Loads the hooks.75 * @param Checkview_Loader $loader Loads the hooks. 76 76 */ 77 77 public function __construct( $plugin_name, $version, $loader ) { 78 79 78 $this->plugin_name = $plugin_name; 80 79 $this->version = $version; … … 82 81 $this->suppress_email = get_option( 'disable_email_receipt', false ); 83 82 $this->suppress_webhook = get_option( 'disable_webhooks', false ); 83 84 84 if ( $this->loader ) { 85 85 $this->loader->add_action( -
checkview/trunk/README.txt
r3296900 r3303097 8 8 License: GPLv3 9 9 License URI: http://www.gnu.org/licenses/gpl-3.0.html 10 Stable tag: 2.0.1 710 Stable tag: 2.0.18 11 11 12 12 [CheckView](https://checkview.io/) is the friendly WordPress automated testing platform for everyone, from developers, shop owners to agencies. … … 86 86 87 87 == Changelog == 88 = 2.0.18 = 89 * Improve logging when querying for available test results. 90 * Increase JWT leeway. 91 * Remove unreachable/unnecessary code. 92 * Retrieve WooCommerce order IDs via method instead of protected property. 93 88 94 = 2.0.17 = 89 95 * Add polyfill for array_find function. … … 354 360 355 361 == Upgrade Notice == 362 = 2.0.18 = 363 * Improve logging when querying for available test results. 364 * Increase JWT leeway. 365 * Remove unreachable/unnecessary code. 366 * Retrieve WooCommerce order IDs via method instead of protected property. 367 356 368 = 2.0.17 = 357 369 * Add polyfill for array_find function. -
checkview/trunk/checkview.php
r3296900 r3303097 12 12 * Plugin URI: https://checkview.io 13 13 * Description: CheckView is the #1 fully automated solution to test your WordPress forms and detect form problems fast. Automatically test your WordPress forms to ensure you never miss a lead again. 14 * Version: 2.0.1 714 * Version: 2.0.18 15 15 * Author: CheckView 16 16 * Author URI: https://checkview.io/ … … 36 36 * @link https://semver.org 37 37 */ 38 define( 'CHECKVIEW_VERSION', '2.0.1 7' );38 define( 'CHECKVIEW_VERSION', '2.0.18' ); 39 39 40 40 if ( ! defined( 'CHECKVIEW_BASE_DIR' ) ) { -
checkview/trunk/includes/API/class-checkview-api.php
r3236719 r3303097 19 19 class CheckView_Api { 20 20 /** 21 * Plugin name.21 * Woo Helper class. 22 22 * 23 23 * @since 1.0.0 24 24 * @access private 25 25 * 26 * @var string $plugin_name The ID of this plugin. 27 */ 28 private $plugin_name; 29 30 /** 31 * Plugin version. 26 * @var bool/Checkview_Woo_Automated_Testing $woo_helper The woo helper of this plugin. 27 */ 28 private $woo_helper; 29 /** 30 * Holds the JWT error. 31 * 32 * @var WP_Error 33 */ 34 public $jwt_error = null; 35 /** 36 * Constructor. 37 * 38 * Sets class properties. 32 39 * 33 40 * @since 1.0.0 34 * @access private 35 * 36 * @var string $version The current version of this plugin. 37 */ 38 private $version; 39 40 /** 41 * Woo Helper class. 42 * 43 * @since 1.0.0 44 * @access private 45 * 46 * @var bool/Checkview_Woo_Automated_Testing $woo_helper The woo helper of this plugin. 47 */ 48 private $woo_helper; 49 /** 50 * Holds the JWT error. 51 * 52 * @var WP_Error 53 */ 54 public $jwt_error = null; 55 /** 56 * Constructor. 57 * 58 * Sets class properties. 59 * 60 * @since 1.0.0 61 * 62 * @param string $plugin_name The name of the plugin. 63 * @param string $version The version of this plugin. 64 * @param class $woo_helper The woohelper class. 65 */ 66 public function __construct( $plugin_name, $version, $woo_helper = '' ) { 67 68 $this->plugin_name = $plugin_name; 69 $this->version = $version; 41 * 42 * @param Checkview_Woo_Automated_Testing $woo_helper The woohelper class. 43 */ 44 public function __construct( $woo_helper = '' ) { 70 45 $this->woo_helper = $woo_helper; 71 46 } 47 72 48 /** 73 49 * Registers API routes. … … 456 432 ) 457 433 );// end checkview_register_rest_route. 458 459 register_rest_route(460 'checkview/v1',461 '/confirm-site',462 array(463 'methods' => 'POST',464 'callback' => array( $this, 'checkview_confirm_site_callback' ),465 'permission_callback' => '__return_true', // Restrict access as needed.466 )467 );468 434 } 469 435 … … 476 442 * 477 443 * @param WP_REST_Request $request Request object. 478 * @return WP_REST_Response /json444 * @return WP_REST_Response|WP_Error 479 445 */ 480 446 public function checkview_get_available_orders( WP_REST_Request $request ) { 481 447 if ( ! class_exists( 'WooCommerce' ) ) { 482 448 Checkview_Admin_Logs::add( 'api-logs', 'WooCommerce not found.' ); 449 483 450 return new WP_REST_Response( 484 451 array( … … 504 471 if ( isset( $this->jwt_error ) && null !== $this->jwt_error ) { 505 472 Checkview_Admin_Logs::add( 'api-logs', $this->jwt_error ); 473 506 474 return new WP_Error( 507 475 400, 508 476 esc_html__( 'Invalid request.', 'checkview' ), 509 477 ); 510 wp_die();511 478 } 512 479 … … 519 486 ) 520 487 ); 521 wp_die();522 488 } 523 489 $orders = array(); … … 526 492 } 527 493 528 $per_page = - 1;494 $per_page = - 1; 529 495 530 496 $params = array(); 531 497 532 498 $args = array( 533 'limit' => - 1,499 'limit' => - 1, 534 500 'payment_method' => 'checkview', 535 501 'meta_query' => array( … … 564 530 if ( $wc_orders ) { 565 531 foreach ( $wc_orders as $order ) { 566 $order_object = new WC_Order( $order-> id);567 $order_details['order_id'] = $order-> id;532 $order_object = new WC_Order( $order->get_id() ); 533 $order_details['order_id'] = $order->get_id(); 568 534 $order_details['customer_id'] = $order_object->get_customer_id(); 569 535 $orders[] = $order_details; … … 575 541 if ( $orders && ! empty( $orders ) && false !== $orders && '' !== $orders ) { 576 542 set_transient( 'checkview_store_orders_transient', $orders, 12 * HOUR_IN_SECONDS ); 543 577 544 return new WP_REST_Response( 578 545 array( … … 591 558 ); 592 559 } 593 wp_die();594 560 } 595 561 … … 598 564 * 599 565 * @param WP_REST_Request $request Request object. 600 * @return WP_REST_Response /json566 * @return WP_REST_Response|WP_Error 601 567 */ 602 568 public function checkview_get_available_order_details( WP_REST_Request $request ) { … … 620 586 esc_html__( 'Invalid request.', 'checkview' ), 621 587 ); 622 wp_die();623 588 } 624 589 … … 775 740 ); 776 741 } 777 wp_die();778 742 } 779 743 /** … … 781 745 * 782 746 * @param WP_REST_Request $request Request object. 783 * @return WP_REST_Response /json747 * @return WP_REST_Response|WP_Error 784 748 */ 785 749 public function checkview_get_available_products( WP_REST_Request $request ) { … … 806 770 esc_html__( 'Invalid request.', 'checkview' ), 807 771 ); 808 wp_die();809 772 } 810 773 if ( '' !== $products && null !== $products && false !== $products ) { … … 816 779 ) 817 780 ); 818 wp_die();819 781 } 820 782 $products = array(); … … 905 867 ); 906 868 } 907 wp_die();908 869 } 909 870 … … 913 874 * Firstly, attempts to retrieve details from the cache. 914 875 * 915 * @return WP_REST_Response 876 * @return WP_REST_Response|WP_Error 916 877 */ 917 878 public function checkview_get_available_shipping_details() { … … 935 896 esc_html__( 'Invalid request.', 'checkview' ), 936 897 ); 937 wp_die();938 898 } 939 899 if ( '' !== $shipping_details && null !== $shipping_details && false !== $shipping_details ) { … … 945 905 ) 946 906 ); 947 wp_die();948 907 } 949 908 $country_class = new WC_Countries(); … … 1028 987 ); 1029 988 } 1030 wp_die();1031 989 } 1032 990 /** … … 1034 992 * 1035 993 * @param WP_REST_Request $request Request object. 1036 * @return WP_REST_Response /WP_Error/json994 * @return WP_REST_Response|WP_Error 1037 995 */ 1038 996 public function checkview_delete_orders( WP_REST_Request $request ) { … … 1053 1011 esc_html__( 'Invalid request.', 'checkview' ), 1054 1012 ); 1055 wp_die();1056 1013 } 1057 1014 global $wpdb; … … 1099 1056 ) 1100 1057 ); 1101 wp_die();1102 1058 } else { 1103 1059 Checkview_Admin_Logs::add( 'api-logs', 'Empty records.' ); … … 1106 1062 esc_html__( 'An error occurred while processing your request.', 'checkview' ), 1107 1063 ); 1108 wp_die();1109 1064 } 1110 1065 } … … 1113 1068 * Retrieves information from the site's WooCommerce API cart endpoint. 1114 1069 * 1115 * @return WP_REST_Response /WP_Error/json1070 * @return WP_REST_Response|WP_Error 1116 1071 */ 1117 1072 public function checkview_get_cart_details() { … … 1132 1087 esc_html__( 'Invalid request.', 'checkview' ), 1133 1088 ); 1134 wp_die();1135 1089 } 1136 1090 $url = home_url( 'wp-json/wc/store/v1/cart' ); … … 1159 1113 esc_html__( 'There was a technical issue while processing your request', 'checkview' ), 1160 1114 ); 1161 wp_die();1162 1115 } else { 1163 1116 $body = wp_remote_retrieve_body( $response ); … … 1175 1128 ) 1176 1129 ); 1177 wp_die();1178 1130 } else { 1179 1131 return new WP_Error( … … 1181 1133 esc_html__( 'An error occurred while processing your request.', 'checkview' ), 1182 1134 ); 1183 wp_die();1184 1135 } 1185 1136 } … … 1188 1139 * Retrieves a list of active payment gateways. 1189 1140 * 1190 * @return WP_REST_Response /WP_Error/json1141 * @return WP_REST_Response|WP_Error 1191 1142 */ 1192 1143 public function checkview_get_active_payment_gateways() { … … 1207 1158 esc_html__( 'Invalid request.', 'checkview' ), 1208 1159 ); 1209 wp_die();1210 1160 } 1211 1161 $active_gateways = $this->woo_helper->get_active_payment_gateways(); … … 1218 1168 ) 1219 1169 ); 1220 wp_die();1221 1170 } else { 1222 1171 // Log the detailed error for internal use. … … 1229 1178 ), 1230 1179 ); 1231 wp_die();1232 1180 } 1233 1181 } … … 1236 1184 * Creates the testing customer. 1237 1185 * 1238 * @return WP_REST_Response /WP_Error/json1186 * @return WP_REST_Response|WP_Error 1239 1187 */ 1240 1188 public function checkview_create_test_customer() { … … 1255 1203 esc_html__( 'Invalid request.', 'checkview' ), 1256 1204 ); 1257 wp_die();1258 1205 } 1259 1206 $customer = $this->woo_helper->checkview_create_test_customer(); … … 1266 1213 ) 1267 1214 ); 1268 wp_die();1269 1215 } else { 1270 1216 Checkview_Admin_Logs::add( 'api-logs', 'Failed to create the customer.' ); … … 1273 1219 esc_html__( 'An error occurred while processing your request.', 'checkview' ), 1274 1220 ); 1275 wp_die();1276 1221 } 1277 1222 } … … 1280 1225 * Retrieves credentials about the testing customer. 1281 1226 * 1282 * @return WP_REST_Response /WP_Error/json1227 * @return WP_REST_Response|WP_Error 1283 1228 */ 1284 1229 public function checkview_get_test_customer_credentials() { … … 1299 1244 esc_html__( 'Invalid request.', 'checkview' ), 1300 1245 ); 1301 wp_die();1302 1246 } 1303 1247 $customer = $this->woo_helper->checkview_get_test_credentials(); … … 1310 1254 ) 1311 1255 ); 1312 wp_die();1313 1256 } else { 1314 1257 Checkview_Admin_Logs::add( 'api-logs', 'Failed to retrieve the customer.' ); … … 1317 1260 esc_html__( 'An error occurred while processing your request.', 'checkview' ), 1318 1261 ); 1319 wp_die();1320 1262 } 1321 1263 } … … 1327 1269 * 1328 1270 * @param WP_REST_Request $request Request object. 1329 * @return WP_REST_Response /WP_Error/json1271 * @return WP_REST_Response|WP_Error 1330 1272 */ 1331 1273 public function checkview_verify_test_user_credentials( WP_REST_Request $request ) { … … 1336 1278 esc_html__( 'Invalid request.', 'checkview' ), 1337 1279 ); 1338 wp_die();1339 1280 } 1340 1281 $user_email = $request->get_param( 'user_email' ); 1341 $user_email = isset( $user_email ) ? sanitize_email( user_email ) : null;1282 $user_email = isset( $user_email ) ? sanitize_email( $user_email ) : null; 1342 1283 if ( null === $user_email || empty( $user_email ) ) { 1343 1284 return new WP_Error( … … 1345 1286 esc_html__( 'An error occurred while processing your request.', 'checkview' ), 1346 1287 ); 1347 wp_die();1348 1288 } 1349 1289 $user = email_exists( $user_email ); … … 1357 1297 ) 1358 1298 ); 1359 wp_die();1360 1299 } else { 1361 1300 Checkview_Admin_Logs::add( 'api-logs', 'Failed to retrieve the user.' ); … … 1364 1303 esc_html__( 'An error occurred while processing your request.', 'checkview' ), 1365 1304 ); 1366 wp_die();1367 1305 } 1368 1306 } … … 1372 1310 * 1373 1311 * @param WP_REST_Request $request Request object. 1374 * @return WP_REST_Response /WP_Error/json1312 * @return WP_REST_Response|WP_Error 1375 1313 */ 1376 1314 public function checkview_delete_test_user_credentials( WP_REST_Request $request ) { … … 1381 1319 esc_html__( 'Invalid request.', 'checkview' ), 1382 1320 ); 1383 wp_die();1384 1321 } 1385 1322 $user_email = $request->get_param( 'user_email' ); 1386 $user_email = isset( $user_email ) ? sanitize_email( user_email ) : null;1323 $user_email = isset( $user_email ) ? sanitize_email( $user_email ) : null; 1387 1324 if ( null === $user_email || empty( $user_email ) ) { 1388 1325 return new WP_Error( … … 1390 1327 esc_html__( 'An error occurred while processing your request.', 'checkview' ), 1391 1328 ); 1392 wp_die();1393 1329 } 1394 1330 $user = email_exists( $user_email ); … … 1406 1342 ) 1407 1343 ); 1408 wp_die();1409 1344 } else { 1410 1345 Checkview_Admin_Logs::add( 'api-logs', 'Failed to delete the user.' ); … … 1413 1348 esc_html__( 'An error occurred while processing your request.', 'checkview' ), 1414 1349 ); 1415 wp_die(); 1416 } 1417 wp_die(); 1350 } 1418 1351 } else { 1419 1352 Checkview_Admin_Logs::add( 'api-logs', 'Failed to retrieve the user.' ); … … 1422 1355 esc_html__( 'An error occurred while processing your request.', 'checkview' ), 1423 1356 ); 1424 wp_die();1425 1357 } 1426 1358 } … … 1431 1363 * Retrieves a list of shipping and selling locations. 1432 1364 * 1433 * @return WP_REST_Response /json1365 * @return WP_REST_Response|WP_Error 1434 1366 */ 1435 1367 public function checkview_get_store_locations() { … … 1450 1382 esc_html__( 'Invalid request.', 'checkview' ), 1451 1383 ); 1452 wp_die();1453 1384 } 1454 1385 $selling_locations = array(); … … 1474 1405 ) 1475 1406 ); 1476 wp_die();1477 1407 } else { 1478 1408 Checkview_Admin_Logs::add( 'api-logs', 'Failed to retrieve the store locations.' ); … … 1481 1411 esc_html__( 'An error occurred while processing your request.', 'checkview' ), 1482 1412 ); 1483 wp_die();1484 1413 } 1485 1414 } … … 1488 1417 * Retrieves the permalink of the test product. 1489 1418 * 1490 * @return WP_REST_Response /json1419 * @return WP_REST_Response|WP_Error 1491 1420 */ 1492 1421 public function checkview_get_store_test_product() { … … 1507 1436 esc_html__( 'Invalid request.', 'checkview' ), 1508 1437 ); 1509 wp_die();1510 1438 } 1511 1439 $product = $this->woo_helper->checkview_get_test_product(); … … 1519 1447 ) 1520 1448 ); 1521 wp_die();1522 1449 } else { 1523 1450 Checkview_Admin_Logs::add( 'api-logs', 'Failed to retrieve the test product.' ); … … 1526 1453 esc_html__( 'An error occurred while processing your request.', 'checkview' ), 1527 1454 ); 1528 wp_die();1529 1455 } 1530 1456 } … … 1533 1459 * Retrieves a list of supported forms used throughout the site. 1534 1460 * 1535 * @return WP_REST_Response /json1461 * @return WP_REST_Response|WP_Error 1536 1462 */ 1537 1463 public function checkview_get_available_forms_list() { … … 1544 1470 esc_html__( 'Invalid request.', 'checkview' ), 1545 1471 ); 1546 wp_die();1547 1472 } 1548 1473 // Temporarily suppress errors. … … 1557 1482 ) 1558 1483 ); 1559 wp_die();1560 1484 } 1561 1485 $forms = array(); … … 2003 1927 ); 2004 1928 } 2005 wp_die();2006 1929 } 2007 1930 … … 2010 1933 * 2011 1934 * @param WP_REST_Request $request Request param with the API call. 2012 * @return WP_REST_Response /WP_Error/json1935 * @return WP_REST_Response|WP_Error 2013 1936 */ 2014 1937 public function checkview_get_available_forms_test_results( WP_REST_Request $request ) { 2015 1938 global $wpdb; 1939 2016 1940 $uid = $request->get_param( 'uid' ); 2017 1941 $uid = isset( $uid ) ? sanitize_text_field( $uid ) : null; 2018 1942 $results = array(); 1943 2019 1944 if ( '' === $uid || null === $uid ) { 2020 1945 Checkview_Admin_Logs::add( 'api-logs', $this->jwt_error ); 2021 return new WP_Error( 2022 400,2023 esc_html__( 'Insuficient data.', 'checkview' ),2024 );2025 wp_die();1946 1947 return new WP_Error( 1948 400, 1949 esc_html__( 'Insufficient data.', 'checkview' ), 1950 ); 2026 1951 } else { 2027 $tablename = $wpdb->prefix . 'cv_entry'; 2028 $result = $wpdb->get_row( $wpdb->prepare( 'Select * from ' . $tablename . ' where uid=%s', $uid ) ); 2029 $tablename = $wpdb->prefix . 'cv_entry_meta'; 2030 $rows = $wpdb->get_results( $wpdb->prepare( 'Select * from ' . $tablename . ' where uid=%s order by id ASC', $uid ) ); 2031 if ( $rows ) { 2032 foreach ( $rows as $row ) { 2033 if ( 'gravityforms' === strtolower( $result->form_type ) ) { 2034 $results[] = array( 2035 'field_id' => 'input_' . $row->form_id . '_' . str_replace( '.', '_', $row->meta_key ), 2036 'field_value' => $row->meta_value, 2037 ); 2038 2039 } elseif ( 'cf7' === strtolower( $result->form_type ) ) { 2040 $value = $row->meta_value; 2041 if ( strpos( $value, 'htt' ) !== false ) { 2042 $value = html_entity_decode( $value ); 2043 } 2044 $results[] = array( 2045 'field_id' => '', 2046 'field_name' => $row->meta_key, 2047 'field_value' => $value, 2048 ); 2049 } elseif ( 'Forminator' === $result->form_type ) { 2050 $value = $row->meta_value; 2051 if ( strpos( $value, 'htt' ) !== false ) { 2052 $value = html_entity_decode( $value ); 2053 } 2054 $results[] = array( 2055 'field_id' => '', 2056 'field_name' => $row->meta_key, 2057 'field_value' => $value, 2058 ); 2059 } else { 2060 2061 $results[] = array( 2062 'field_id' => $row->meta_key, 2063 'field_value' => maybe_unserialize( $row->meta_value ), 2064 ); 1952 $table_name = $wpdb->prefix . 'cv_entry'; 1953 $query = $wpdb->prepare( 'Select * from ' . $table_name . ' where uid=%s', $uid ); 1954 $query_as_json = wp_json_encode( array( 'query' => $query ) ); 1955 $result = $wpdb->get_row( $query ); // We expect an object 1956 1957 if ( is_null( $result ) ) { 1958 Checkview_Admin_Logs::add( 'api-logs', 'Failed to find test results (query [' . $query_as_json . '] returned null).' ); 1959 1960 return new WP_Error( 1961 400, 1962 esc_html__( 'Failed to find test results (query [' . $query_as_json . '] returned null).', 'checkview' ), 1963 ); 1964 } 1965 1966 if ( ! is_object( $result ) ) { 1967 Checkview_Admin_Logs::add( 'api-logs', 'Failed to find test results (query [' . $query_as_json . '] returned unexpected type [' . gettype( $result ) . ']).' ); 1968 1969 return new WP_Error( 1970 400, 1971 esc_html__( 'Failed to find test results (query [' . $query_as_json . '] returned unexpected type [' . gettype( $result ) . ']).', 'checkview' ), 1972 ); 1973 } 1974 1975 $table_name = $wpdb->prefix . 'cv_entry_meta'; 1976 $query = $wpdb->prepare( 'Select * from ' . $table_name . ' where uid=%s order by id ASC', $uid ); 1977 $meta_query_as_json = wp_json_encode( array( 'query' => $query ) ); 1978 $rows = $wpdb->get_results( $query ); // We expect an array of objects 1979 1980 if ( is_null( $rows ) ) { 1981 Checkview_Admin_Logs::add( 'api-logs', 'Failed to find test results (query [' . $meta_query_as_json . '] returned null).' ); 1982 1983 return new WP_Error( 1984 400, 1985 esc_html__( 'Failed to find test results (query [' . $meta_query_as_json . '] returned null).', 'checkview' ), 1986 ); 1987 } 1988 1989 if ( ! is_array( $rows ) ) { 1990 Checkview_Admin_Logs::add( 'api-logs', 'Failed to find test results (query [' . $meta_query_as_json . '] returned unexpected type [' . gettype( $rows ) . ']).' ); 1991 1992 return new WP_Error( 1993 400, 1994 esc_html__( 'Failed to find test results (query [' . $meta_query_as_json . '] returned unexpected type [' . gettype( $rows ) . ']).', 'checkview' ), 1995 ); 1996 } 1997 1998 foreach ( $rows as $row ) { 1999 if ( 'gravityforms' === strtolower( $result->form_type ) ) { 2000 $results[] = array( 2001 'field_id' => 'input_' . $row->form_id . '_' . str_replace( '.', '_', $row->meta_key ), 2002 'field_value' => $row->meta_value, 2003 ); 2004 } elseif ( 'cf7' === strtolower( $result->form_type ) ) { 2005 $value = $row->meta_value; 2006 2007 if ( strpos( $value, 'htt' ) !== false ) { 2008 $value = html_entity_decode( $value ); 2065 2009 } 2066 } 2067 if ( ! empty( $results ) && false !== $results ) { 2068 return new WP_REST_Response( 2069 array( 2070 'status' => 200, 2071 'response' => esc_html__( 'Successfully retrieved the results.', 'checkview' ), 2072 'body_response' => $results, 2073 ) 2010 2011 $results[] = array( 2012 'field_id' => '', 2013 'field_name' => $row->meta_key, 2014 'field_value' => $value, 2015 ); 2016 } elseif ( 'Forminator' === $result->form_type ) { 2017 $value = $row->meta_value; 2018 2019 if ( strpos( $value, 'htt' ) !== false ) { 2020 $value = html_entity_decode( $value ); 2021 } 2022 2023 $results[] = array( 2024 'field_id' => '', 2025 'field_name' => $row->meta_key, 2026 'field_value' => $value, 2074 2027 ); 2075 2028 } else { 2076 Checkview_Admin_Logs::add( 'api-logs', 'Failed to retrieve the results.' ); 2077 return new WP_Error( 2078 400, 2079 esc_html__( 'An error occurred while processing your request.', 'checkview' ), 2029 $results[] = array( 2030 'field_id' => $row->meta_key, 2031 'field_value' => maybe_unserialize( $row->meta_value ), 2080 2032 ); 2081 2033 } 2082 wp_die(); 2083 } else { 2084 Checkview_Admin_Logs::add( 'api-logs', 'Failed to retrieve the results.' ); 2085 return new WP_Error( 2086 400, 2087 esc_html__( 'An error occurred while processing your request.', 'checkview' ), 2034 } 2035 2036 if ( ! empty( $results ) ) { 2037 return new WP_REST_Response( 2038 array( 2039 'status' => 200, 2040 'response' => esc_html__( 'Successfully retrieved the results.', 'checkview' ), 2041 'body_response' => $results, 2042 ) 2088 2043 ); 2089 wp_die(); 2090 } 2044 } 2045 Checkview_Admin_Logs::add( 'api-logs', 'Failed to find test results (rows were found, but results were determined to be empty).' ); 2046 2047 return new WP_Error( 2048 400, 2049 esc_html__( 'Failed to find test results (rows were found, but results were determined to be empty).', 'checkview' ), 2050 ); 2091 2051 } 2092 2052 } … … 2098 2058 * 2099 2059 * @param WP_REST_Request $request Object with the API call. 2100 * @return WP_REST_Response /WP_Error2060 * @return WP_REST_Response|WP_Error 2101 2061 */ 2102 2062 public function checkview_register_form_test( WP_REST_Request $request ) { … … 2124 2084 ) 2125 2085 ); 2126 wp_die();2127 2086 } else { 2128 2087 Checkview_Admin_Logs::add( 'api-logs', sanitize_text_field( 'Details to register form test are not correct.' ) ); … … 2131 2090 esc_html__( 'An error occurred while processing your request.', 'checkview' ), 2132 2091 ); 2133 wp_die();2134 2092 } 2135 2093 } … … 2141 2099 * 2142 2100 * @param WP_REST_Request $request Request param with the API call. 2143 * @return WP_REST_Response /WP_Error/json2101 * @return WP_REST_Response|WP_Error 2144 2102 */ 2145 2103 public function checkview_delete_forms_test_results( WP_REST_Request $request ) { … … 2160 2118 esc_html__( 'Insuficient data.', 'checkview' ), 2161 2119 ); 2162 wp_die();2163 2120 } else { 2164 2121 $rows = true; … … 2171 2128 ) 2172 2129 ); 2173 wp_die();2174 2130 } else { 2175 2131 Checkview_Admin_Logs::add( 'api-logs', sanitize_text_field( 'Failed to remove the results.' ) ); … … 2178 2134 esc_html__( 'An error occurred while processing your request.', 'checkview' ), 2179 2135 ); 2180 wp_die();2181 2136 } 2182 2137 } … … 2189 2144 * version, and the admin AJAX url. 2190 2145 * 2191 * @return WP_Rest_Response Forms details.2146 * @return WP_Rest_Response|WP_Error 2192 2147 */ 2193 2148 public function checkview_saas_get_site_info() { … … 2274 2229 * 2275 2230 * @param WP_REST_Request $request WP_Request object. 2276 * @return Json/WPError2231 * @return WP_REST_Response|WP_Error 2277 2232 */ 2278 2233 public function checkview_saas_get_plugin_version( WP_REST_Request $request ) { … … 2284 2239 esc_html__( 'Invalid request.', 'checkview' ), 2285 2240 ); 2286 wp_die();2287 2241 } 2288 2242 // Get all plugins. … … 2341 2295 * Returns plugin logs. 2342 2296 * 2343 * @return WP_R est_Response log details.2297 * @return WP_REST_Response|WP_Error 2344 2298 */ 2345 2299 public function checkview_saas_get_helper_logs() { … … 2400 2354 * Sets status for helper plugin. 2401 2355 * 2402 * @param \WP_REST_Request $request wp request object.2403 * @return WP_ Error/WP_REST_RESPONSE2356 * @param WP_REST_Request $request wp request object. 2357 * @return WP_REST_Response|WP_Error 2404 2358 */ 2405 2359 public function checkview_saas_set_helper_status( \WP_REST_Request $request ) { … … 2430 2384 2431 2385 /** 2432 * Sets status for test product. .2433 * 2434 * @param \WP_REST_Request $request wp request object.2435 * @return WP_ Error/WP_REST_RESPONSE2386 * Sets status for test product. 2387 * 2388 * @param WP_REST_Request $request wp request object. 2389 * @return WP_REST_Response|WP_Error 2436 2390 */ 2437 2391 public function checkview_saas_set_test_product_status( \WP_REST_Request $request ) { … … 2452 2406 esc_html__( 'Invalid request.', 'checkview' ), 2453 2407 ); 2454 wp_die();2455 2408 } 2456 2409 // Get the status from the request parameters. … … 2492 2445 * On success, stores the nonce token so it will not be used again. 2493 2446 * 2494 * @param \WP_REST_Request $request request data with the api call.2495 * @return json/array2447 * @param WP_REST_Request $request request data with the api call. 2448 * @return WP_Error|array 2496 2449 */ 2497 2450 public function checkview_get_items_permissions_check( \WP_REST_Request $request ) { … … 2508 2461 '' 2509 2462 ); 2510 wp_die();2511 2463 } 2512 2464 … … 2518 2470 array( 'status' => 400 ) 2519 2471 ); 2520 wp_die();2521 2472 } 2522 2473 $nonce_token = checkview_validate_jwt_token( $auth_header ); … … 2531 2482 '' 2532 2483 ); 2533 wp_die();2534 2484 } 2535 2485 if ( ! checkview_is_valid_uuid( $nonce_token ) ) { … … 2540 2490 '' 2541 2491 ); 2542 wp_die();2543 2492 } 2544 2493 global $wpdb; … … 2587 2536 '' 2588 2537 ); 2589 wp_die();2590 2538 } else { 2591 2539 // Store the nonce in the database. … … 2603 2551 ) 2604 2552 ); 2605 wp_die();2606 2553 } 2607 2554 } -
checkview/trunk/includes/checkview-functions.php
r3296900 r3303097 75 75 try { 76 76 // Allow one-second leeway for JWT tokens 77 JWT::$leeway = 1;77 JWT::$leeway = 5; 78 78 $decoded = JWT::decode( $token, new Key( $key, 'RS256' ) ); 79 79 } catch ( Exception $e ) { -
checkview/trunk/includes/class-checkview.php
r3296900 r3303097 55 55 * @access private 56 56 * 57 * @var class$instance The instance of the class.57 * @var Checkview $instance The instance of the class. 58 58 */ 59 59 … … 71 71 $this->version = CHECKVIEW_VERSION; 72 72 } else { 73 $this->version = '2.0.1 7';73 $this->version = '2.0.18'; 74 74 } 75 75 $this->plugin_name = 'checkview'; … … 154 154 155 155 // Initialize the plugin's API. 156 $plugin_api = new CheckView_Api( $ this->get_plugin_name(), $this->get_version(), $woo_helper );156 $plugin_api = new CheckView_Api( $woo_helper ); 157 157 158 158 // Hook our routes into WordPress. -
checkview/trunk/includes/woocommercehelper/class-checkview-woo-automated-testing.php
r3283610 r3303097 73 73 * @param string $plugin_name The name of this plugin. 74 74 * @param string $version The version of this plugin. 75 * @param string$loader Loads the hooks.75 * @param Checkview_Loader $loader Loads the hooks. 76 76 */ 77 77 public function __construct( $plugin_name, $version, $loader ) { 78 79 78 $this->plugin_name = $plugin_name; 80 79 $this->version = $version; … … 82 81 $this->suppress_email = get_option( 'disable_email_receipt', false ); 83 82 $this->suppress_webhook = get_option( 'disable_webhooks', false ); 83 84 84 if ( $this->loader ) { 85 85 $this->loader->add_action(
Note: See TracChangeset
for help on using the changeset viewer.