Plugin Directory

Changeset 3480860


Ignore:
Timestamp:
03/12/2026 06:52:03 AM (3 weeks ago)
Author:
akashmalik
Message:

Improvements and bug fixes
WordPress version 6.9 release compatibility

Location:
gratisfaction-all-in-one-loyalty-contests-referral-program-for-woocommerce/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • gratisfaction-all-in-one-loyalty-contests-referral-program-for-woocommerce/trunk/grconnect.php

    r3419727 r3480860  
    33/**
    44 * @package Gratisfaction Connect
    5  * @version 4.6.0
     5 * @version 4.6.1
    66 */
    77/*
     
    99  Plugin URI: http://appsmav.com
    1010  Description: Loyalty + Referral + Rewards + Birthdays and Anniversaries + Giveaways + Sweepstakes.
    11   Version: 4.6.0
     11  Version: 4.6.1
    1212  Author: Appsmav
    1313  Author URI: http://appsmav.com
     
    5353        const REDEEM_COUPON = 'GRPAYPOINTS';
    5454
    55         public static $_plugin_version  = '4.6.0';
     55        public static $_plugin_version  = '4.6.1';
    5656        public static $_callback_url = 'https://gratisfaction.appsmav.com/';
    5757        public static $_api_version  = 'newapi/v2/';
     
    882882                }
    883883
     884                $param['coupon_lines'] = [];
     885                $coupons_data_lines = $order->get_items('coupon');
     886                if (!empty($coupons_data_lines)) {
     887                    foreach ($coupons_data_lines as $item_data) {
     888                        $param['coupon_lines'][] = self::sanitize_data_for_api($item_data->get_data());
     889                    }
     890                }
     891
    884892                // Check points redeemed for this order - PayByPoints
    885893                $gr_applied_points = get_post_meta($order_id, 'gr_applied_points', true);
     
    899907                $param['line_items'] = [];
    900908                foreach ($order->get_items('line_item') as $key => $item) {
    901                     $param['line_items'][] = self::sanitize_refund_data_for_api($item->get_data()); // Only product_id & total are required now
     909                    $param['line_items'][] = self::sanitize_data_for_api($item->get_data()); // Only product_id & total are required now
    902910                }
    903911
     
    919927                        }
    920928
    921                         $refundData[$key]['refund'] = self::sanitize_refund_data_for_api($refund->get_data());
     929                        $refundData[$key]['refund'] = self::sanitize_data_for_api($refund->get_data());
    922930
    923931                        $refund_items = $refund->get_items();
     
    928936                                }
    929937
    930                                 $refundData[$key]['line_items'][$item_id] = self::sanitize_refund_data_for_api($item->get_data());
     938                                $refundData[$key]['line_items'][$item_id] = self::sanitize_data_for_api($item->get_data());
    931939                            }
    932940                        }
     
    10601068                }
    10611069
     1070                $param['coupon_lines'] = [];
     1071                $coupons_data_lines = $order->get_items('coupon');
     1072                if (!empty($coupons_data_lines)) {
     1073                    foreach ($coupons_data_lines as $item_data) {
     1074                        $param['coupon_lines'][] = self::sanitize_data_for_api($item_data->get_data());
     1075                    }
     1076                }
     1077
    10621078                $param['discount'] = $order->get_total_discount();
    10631079                $param['subtotal'] = $order->get_subtotal();
     
    10701086                $param['line_items'] = [];
    10711087                foreach ($order->get_items('line_item') as $key => $item) {
    1072                     $param['line_items'][] = self::sanitize_refund_data_for_api($item->get_data());
     1088                    $param['line_items'][] = self::sanitize_data_for_api($item->get_data());
    10731089                }
    10741090
     
    15251541                $param['line_items'] = [];
    15261542                foreach ($order->get_items('line_item') as $key => $item) {
    1527                     $param['line_items'][] = self::sanitize_refund_data_for_api($item->get_data()); // TODO: Only product_id & total are required now
     1543                    $param['line_items'][] = self::sanitize_data_for_api($item->get_data()); // TODO: Only product_id & total are required now
    15281544                }
    15291545
     
    15351551                            continue;
    15361552                        }
    1537                         $refundData[$key]['refund'] = self::sanitize_refund_data_for_api($refund->get_data());
     1553                        $refundData[$key]['refund'] = self::sanitize_data_for_api($refund->get_data());
    15381554                        $refund_items = $refund->get_items();
    15391555                        if (!empty($refund_items) && is_array($refund_items)) {
     
    15421558                                    continue;
    15431559                                }
    1544                                 $refundData[$key]['line_items'][$item_id] = self::sanitize_refund_data_for_api($item->get_data());
     1560                                $refundData[$key]['line_items'][$item_id] = self::sanitize_data_for_api($item->get_data());
    15451561                            }
    15461562                        }
     
    16121628               
    16131629                // Sanitize refund data to handle WC_DateTime objects
    1614                 $param = self::sanitize_refund_data_for_api($param);
     1630                $param = self::sanitize_data_for_api($param);
    16151631               
    16161632                $api_response = $this->callGrConnectApi($param, $urlApi);
     
    16861702                add_action('wp_ajax_check_settings', [$this, 'gr_ajax_check_settings']);
    16871703                add_action('wp_ajax_check_login', [$this, 'gr_ajax_check_login']);
    1688                 add_action('wp_ajax_check_autologin', array(&$this, 'gr_ajax_check_autologin'));
     1704                add_action('wp_ajax_check_autologin', array($this, 'gr_ajax_check_autologin'));
    16891705            } catch (Exception $ex) {
    16901706
     
    19291945                $response = wp_remote_post($url,array('body'=> $param,'timeout' => 10));
    19301946                if (is_array($response) && !empty($response['body'])) {
    1931                     $resp = json_decode($response['body'], true);
     1947                    $resp = appsmav_json_decode($response['body'], true);
    19321948                } else {
    19331949                    $resp['error']  = 1;
     
    40894105                   
    40904106                    // Check if valid array and status matches
    4091                     if (is_array($ipLocArr) && !empty($ipLocArr['geoplugin_request']) &&
    4092                         isset($ipLocArr['geoplugin_status']) &&
     4107                    if (is_array($ipLocArr) && isset($ipLocArr['geoplugin_request'], $ipLocArr['geoplugin_status']) &&
    40934108                        $ipLocArr['geoplugin_request'] == $ip &&
    40944109                        appsmav_in_array($ipLocArr['geoplugin_status'], array(200, 206))) {
    40954110                        $ip_details['ip'] = empty($ipLocArr['geoplugin_request']) ? $ip : $ipLocArr['geoplugin_request'];
    4096                         $ip_details['city'] = empty($ipLocArr['geoplugin_city']) ? null : $ipLocArr['geoplugin_city'];
    4097                         $ip_details['region_name'] = empty($ipLocArr['geoplugin_regionName']) ? null : $ipLocArr['geoplugin_regionName'];
    4098                         $ip_details['country_code'] = empty($ipLocArr['geoplugin_countryCode']) ? 'US' : $ipLocArr['geoplugin_countryCode'];
     4111                        $ip_details['city'] = (isset($ipLocArr['geoplugin_city']) && $ipLocArr['geoplugin_city'] !== '') ? $ipLocArr['geoplugin_city'] : null;
     4112                        $ip_details['region_name'] = (isset($ipLocArr['geoplugin_regionName']) && $ipLocArr['geoplugin_regionName'] !== '') ? $ipLocArr['geoplugin_regionName'] : null;
     4113                        $ip_details['country_code'] = (isset($ipLocArr['geoplugin_countryCode']) && $ipLocArr['geoplugin_countryCode'] !== '') ? $ipLocArr['geoplugin_countryCode'] : 'US';
    40994114                    }
    41004115                }
     
    42104225                $grCampIdArr = get_option('grconnect_secret');
    42114226                $grCampId = !empty($grCampIdArr) ? $grCampIdArr : '';
    4212                 $paramSalt = array();
     4227                $paramSalt = $params = array();
    42134228                $paramSalt['id_site'] = $params['id_site'] = $grAppId;
    42144229                $paramSalt['points'] = $params['points'] = 0;
     
    42484263                $params['redeem_points'] = !empty($param['redeem_points']) ? $param['redeem_points'] : 0;
    42494264                $params['redeem_charges'] = !empty($param['redeem_charges']) ? $param['redeem_charges'] : 0;
     4265                $params['coupon_lines'] = !empty($param['coupon_lines']) ? $param['coupon_lines'] : [];
    42504266                $params['payload'] = get_option('grconnect_payload', 0);
    42514267                $params['created_date'] = !empty($param['created_date']) ? $param['created_date'] : '';
     
    49114927            {
    49124928                // Set up the settings for this plugin
    4913                 add_action('comment_post', array(&$this, 'send_comment_to_appsmav'));
    4914                 add_action('wp', array(&$this, 'init_page_load'));
     4929                add_action('comment_post', array($this, 'send_comment_to_appsmav'));
     4930                add_action('wp', array($this, 'init_page_load'));
    49154931            } catch (Exception $ex) {
    49164932
     
    49224938         * Sanitize refund data to handle WC_DateTime objects and other non-serializable data Works on PHP 5.4+
    49234939         */
    4924         public static function sanitize_refund_data_for_api($data) {
     4940        public static function sanitize_data_for_api($data) {
    49254941            try {
    49264942                if (is_array($data)) {
     
    49344950                                // Handle stdClass objects
    49354951                                elseif ($value instanceof stdClass) {
    4936                                     $data[$key] = self::sanitize_refund_data_for_api(get_object_vars($value));
     4952                                    $data[$key] = self::sanitize_data_for_api(get_object_vars($value));
    49374953                                }
    49384954                                // Handle WooCommerce data objects
    49394955                                elseif (method_exists($value, 'get_data')) {
    4940                                     $data[$key] = self::sanitize_refund_data_for_api($value->get_data());
     4956                                    $data[$key] = self::sanitize_data_for_api($value->get_data());
    49414957                                }
    49424958                                // Handle objects with __toString method
     
    49544970                        }
    49554971                        elseif (is_array($value)) {
    4956                             $data[$key] = self::sanitize_refund_data_for_api($value);
     4972                            $data[$key] = self::sanitize_data_for_api($value);
    49574973                        }
    49584974                    }
  • gratisfaction-all-in-one-loyalty-contests-referral-program-for-woocommerce/trunk/includes/grwoo-api.php

    r3419727 r3480860  
    552552            $data = array(
    553553                'error' => 0,
    554                 'order' => GR_Connect::sanitize_refund_data_for_api($order->get_data()),
     554                'order' => GR_Connect::sanitize_data_for_api($order->get_data()),
    555555                'currency' => $curShop,
    556556                'total' => $total,
     
    570570            $param['line_items'] = [];
    571571            foreach ($order->get_items('line_item') as $key => $item) {
    572                 $param['line_items'][] = GR_Connect::sanitize_refund_data_for_api($item->get_data());
     572                $param['line_items'][] = GR_Connect::sanitize_data_for_api($item->get_data());
    573573            }
    574574
     
    580580                        continue;
    581581                    }
    582                     $refundData[$key]['refund'] = GR_Connect::sanitize_refund_data_for_api($refund->get_data());
     582                    $refundData[$key]['refund'] = GR_Connect::sanitize_data_for_api($refund->get_data());
    583583                    $refund_items = $refund->get_items();
    584584                    if (!empty($refund_items) && is_array($refund_items)) {
     
    587587                                continue;
    588588                            }
    589                             $refundData[$key]['line_items'][$item_id] = GR_Connect::sanitize_refund_data_for_api($item->get_data());
     589                            $refundData[$key]['line_items'][$item_id] = GR_Connect::sanitize_data_for_api($item->get_data());
    590590                        }
    591591                    }
  • gratisfaction-all-in-one-loyalty-contests-referral-program-for-woocommerce/trunk/readme.txt

    r3419727 r3480860  
    44Donate link: https://appsmav.com
    55Requires at least: 3.0.1
    6 Tested up to: 6.8
    7 Stable tag: 4.6.0
     6Tested up to: 6.9
     7Stable tag: 4.6.1
    88License: GPLv2 or later
    99License URI: http://www.gnu.org/licenses/gpl-2.0.html
     
    254254
    255255== Changelog ==
     256= 4.6.1 =
     257Improvements and bug fixes
     258WordPress version 6.9 release compatibility
     259
    256260= 4.6.0 =
    257261Improvements and bug fixes in block pages
     
    632636
    633637== Upgrade Notice ==
    634 = 4.6.0 =
    635 Improvements and bug fixes in block pages
     638= 4.6.1 =
     639Improvements and bug fixes
     640WordPress version 6.9 release compatibility
Note: See TracChangeset for help on using the changeset viewer.