Plugin Directory

Changeset 2969263


Ignore:
Timestamp:
09/20/2023 01:30:07 PM (2 years ago)
Author:
dreamfox
Message:

Version 2.3.4

Location:
woocommerce-shipping-gateway-per-product
Files:
225 added
9 edited

Legend:

Unmodified
Added
Removed
  • woocommerce-shipping-gateway-per-product/trunk/freemius/includes/class-freemius.php

    r2934407 r2969263  
    15321532            $this->add_filter( 'after_code_type_change', array( &$this, '_after_code_type_change' ) );
    15331533
    1534             add_action( 'admin_init', array( &$this, '_add_trial_notice' ) );
    1535             add_action( 'admin_init', array( &$this, '_add_affiliate_program_notice' ) );
     1534            add_action( 'admin_init', array( &$this, '_add_trial_notice' ) ); // @phpstan-ignore-line
     1535            add_action( 'admin_init', array( &$this, '_add_affiliate_program_notice' ) ); // @phpstan-ignore-line
    15361536            add_action( 'admin_enqueue_scripts', array( &$this, '_enqueue_common_css' ) );
    15371537
     
    16431643         * @since 2.2.3
    16441644         *
    1645          * @return string
     1645         * @return void
    16461646         */
    16471647        static function _prepend_fs_allow_updater_and_dialog_flag_url_param() {
     
    34933493         */
    34943494        static function get_unfiltered_site_url( $blog_id = null, $strip_protocol = false, $add_trailing_slash = false ) {
     3495            $url = ( ! is_multisite() && defined( 'WP_SITEURL' ) ) ? WP_SITEURL : self::get_site_url_from_wp_option( $blog_id );
     3496
     3497            if ( $strip_protocol ) {
     3498                $url = fs_strip_url_protocol( $url );
     3499            }
     3500
     3501            if ( $add_trailing_slash ) {
     3502                $url = trailingslashit( $url );
     3503            }
     3504
     3505            return $url;
     3506        }
     3507
     3508        /**
     3509         * @author Leo Fajardo (@leorw)
     3510         * @since 2.6.0
     3511         *
     3512         * @param int|null $blog_id
     3513         *
     3514         * @return string
     3515         */
     3516        private static function get_site_url_from_wp_option( $blog_id = null ) {
    34953517            global $wp_filter;
    34963518
     
    35173539                    $wp_filter[ $hook_name ] = $site_url_filter;
    35183540                }
    3519             }
    3520 
    3521             if ( $strip_protocol ) {
    3522                 $url = fs_strip_url_protocol( $url );
    3523             }
    3524 
    3525             if ( $add_trailing_slash ) {
    3526                 $url = trailingslashit( $url );
    35273541            }
    35283542
     
    40814095
    40824096            if ( function_exists( 'random_int' ) ) {
    4083                 $random = random_int( $min, $max );
     4097                $random = random_int( $min, $max ); // phpcs:ignore PHPCompatibility.FunctionUse.NewFunctions.random_intFound
    40844098            } else {
    40854099                $random = rand( $min, $max );
     
    44004414
    44014415            // Get the UTF encoded domain name.
    4402             $domain = idn_to_ascii( $parts[1] ) . '.';
     4416            /**
     4417             * @note - The check of `defined('...')` is there to account for PHP servers compiled with some older version of ICU where the constants are not defined.
     4418             * @author - @swashata
     4419             */
     4420            $is_new_idn_available = (
     4421                version_compare( PHP_VERSION, '5.6.40') > 0 &&
     4422                defined( 'IDNA_DEFAULT' ) &&
     4423                defined( 'INTL_IDNA_VARIANT_UTS46' )
     4424            );
     4425            if ( $is_new_idn_available ) {
     4426                $domain = idn_to_ascii( $parts[1], IDNA_DEFAULT, INTL_IDNA_VARIANT_UTS46 );
     4427            } else {
     4428                $domain = idn_to_ascii( $parts[1] );  // phpcs:ignore PHPCompatibility.ParameterValues.NewIDNVariantDefault.NotSet
     4429            }
     4430
     4431            $domain = $domain . '.';
    44034432
    44044433            return ( checkdnsrr( $domain, 'MX' ) || checkdnsrr( $domain, 'A' ) );
     
    56165645            }
    56175646
    5618             if ( $this->is_registered() ) {
    5619                 if ( ! $this->is_addon() ) {
    5620                     add_action(
    5621                         is_admin() ? 'admin_init' : 'init',
    5622                         array( &$this, '_plugin_code_type_changed' )
    5623                     );
    5624                 }
    5625 
    5626                 if ( $this->is_premium() ) {
    5627                     // Purge cached payments after switching to the premium version.
    5628                     // @todo This logic doesn't handle purging the cache for serviceware module upgrade.
    5629                     $this->get_api_user_scope()->purge_cache( "/plugins/{$this->_module_id}/payments.json?include_addons=true" );
    5630                 }
     5647            if ( ! $this->is_addon() ) {
     5648                add_action(
     5649                    is_admin() ? 'admin_init' : 'init',
     5650                    array( &$this, '_plugin_code_type_changed' )
     5651                );
     5652            }
     5653
     5654            if ( $this->is_registered() && $this->is_premium() ) {
     5655                // Purge cached payments after switching to the premium version.
     5656                // @todo This logic doesn't handle purging the cache for serviceware module upgrade.
     5657                $this->get_api_user_scope()->purge_cache( "/plugins/{$this->_module_id}/payments.json?include_addons=true" );
    56315658            }
    56325659        }
     
    56925719            }
    56935720
    5694             // Schedule code type changes event.
    5695             $this->schedule_install_sync();
     5721            if ( $this->is_registered() ) {
     5722                // Schedule code type changes event.
     5723                $this->schedule_install_sync();
     5724            }
    56965725
    56975726            /**
     
    999110020         * @param string $caller
    999210021         *
    9993          * @return string
     10022         * @return void
    999410023         */
    999510024        function set_basename( $is_premium, $caller ) {
     
    1241712446            $install_2_blog_map = array();
    1241812447            foreach ( $blog_2_install_map as $blog_id => $install ) {
    12419                 $params[] = array( 'id' => $install->id );
     12448                $params[] = array( 'id' => $install->id, 'url' => $install->url );
    1242012449
    1242112450                $install_2_blog_map[ $install->id ] = $blog_id;
     
    1669816727         * @return FS_User|false
    1669916728         */
    16700         static function _get_user_by_email( $email ) {
     16729        public static function _get_user_by_email( $email ) {
    1670116730            self::$_static_logger->entrance();
    1670216731
     
    1787217901         * @param bool      $redirect
    1787317902         *
    17874          * @return string If redirect is `false`, returns the next page the user should be redirected to.
     17903         * @return void
    1787517904         */
    1787617905        private function install_many_pending_with_user(
     
    2326623295
    2326723296        /**
     23297         * Adds CSS classes for the body tag in the admin.
     23298         *
     23299         * @param string $classes Space-separated string of class names.
     23300         *
     23301         * @return string $classes FS Admin body tag class names.
     23302         */
     23303        public function fs_addons_body_class( $classes ) {
     23304            $classes .= ' plugins-php';
     23305            return $classes;
     23306        }
     23307
     23308        /**
    2326823309         * Account page resources load.
    2326923310         *
     
    2328123322                wp_enqueue_script( 'plugin-install' );
    2328223323                add_thickbox();
    23283 
    23284                 function fs_addons_body_class( $classes ) {
    23285                     $classes .= ' plugins-php';
    23286 
    23287                     return $classes;
    23288                 }
    23289 
    23290                 add_filter( 'admin_body_class', 'fs_addons_body_class' );
     23324                add_filter( 'admin_body_class', array( $this, 'fs_addons_body_class' ) );
    2329123325            }
    2329223326
     
    2342323457            wp_enqueue_script( 'plugin-install' );
    2342423458            add_thickbox();
    23425 
    23426             function fs_addons_body_class( $classes ) {
    23427                 $classes .= ' plugins-php';
    23428 
    23429                 return $classes;
    23430             }
    23431 
    23432             add_filter( 'admin_body_class', 'fs_addons_body_class' );
     23459            add_filter( 'admin_body_class', array( $this, 'fs_addons_body_class' ) );
    2343323460
    2343423461            if ( ! $this->is_registered() && $this->is_org_repo_compliant() ) {
  • woocommerce-shipping-gateway-per-product/trunk/freemius/includes/debug/class-fs-debug-bar-panel.php

    r2644597 r2969263  
    1111    }
    1212
    13     /**
    14      * Extends Debug Bar plugin by adding a panel to show all Freemius API requests.
    15      *
    16      * @author Vova Feldman (@svovaf)
    17      * @since  1.1.7.3
    18      *
    19      * Class Freemius_Debug_Bar_Panel
    20      */
    21     class Freemius_Debug_Bar_Panel extends Debug_Bar_Panel {
    22         function init() {
    23             $this->title( 'Freemius' );
    24         }
     13    if ( class_exists( 'Debug_Bar_Panel' ) ) {
    2514
    26         static function requests_count() {
    27             if ( class_exists( 'Freemius_Api_WordPress' ) ) {
    28                 $logger = Freemius_Api_WordPress::GetLogger();
    29             } else {
    30                 $logger = array();
     15        /**
     16         * Extends Debug Bar plugin by adding a panel to show all Freemius API requests.
     17         *
     18         * @author Vova Feldman (@svovaf)
     19         * @since  1.1.7.3
     20         *
     21         * Class Freemius_Debug_Bar_Panel
     22         */
     23        class Freemius_Debug_Bar_Panel extends Debug_Bar_Panel {
     24
     25            public function init() {
     26                $this->title( 'Freemius' ); // @phpstan-ignore-line
    3127            }
    3228
    33             return number_format( count( $logger ) );
    34         }
     29            public static function requests_count() {
     30                if ( class_exists( 'Freemius_Api_WordPress' ) ) {
     31                    $logger = Freemius_Api_WordPress::GetLogger();
     32                } else {
     33                    $logger = array();
     34                }
    3535
    36         static function total_time() {
    37             if ( class_exists( 'Freemius_Api_WordPress' ) ) {
    38                 $logger = Freemius_Api_WordPress::GetLogger();
    39             } else {
    40                 $logger = array();
     36                return number_format( count( $logger ) );
    4137            }
    4238
    43             $total_time = .0;
    44             foreach ( $logger as $l ) {
    45                 $total_time += $l['total'];
     39            public static function total_time() {
     40                if ( class_exists( 'Freemius_Api_WordPress' ) ) {
     41                    $logger = Freemius_Api_WordPress::GetLogger();
     42                } else {
     43                    $logger = array();
     44                }
     45
     46                $total_time = .0;
     47                foreach ( $logger as $l ) {
     48                    $total_time += $l['total'];
     49                }
     50
     51                return number_format( 100 * $total_time, 2 ) . ' ' . fs_text_x_inline( 'ms', 'milliseconds' );
    4652            }
    4753
    48             return number_format( 100 * $total_time, 2 ) . ' ' . fs_text_x_inline( 'ms', 'milliseconds' );
    49         }
    50 
    51         function render() {
    52             ?>
    53             <div id='debug-bar-php'>
    54                 <?php fs_require_template( '/debug/api-calls.php' ) ?>
    55                 <br>
    56                 <?php fs_require_template( '/debug/scheduled-crons.php' ) ?>
    57                 <br>
    58                 <?php fs_require_template( '/debug/plugins-themes-sync.php' ) ?>
    59                 <br>
    60                 <?php fs_require_template( '/debug/logger.php' ) ?>
    61             </div>
    62         <?php
     54            public function render() {
     55                ?>
     56                <div id='debug-bar-php'>
     57                    <?php fs_require_template( '/debug/api-calls.php' ) ?>
     58                    <br>
     59                    <?php fs_require_template( '/debug/scheduled-crons.php' ) ?>
     60                    <br>
     61                    <?php fs_require_template( '/debug/plugins-themes-sync.php' ) ?>
     62                    <br>
     63                    <?php fs_require_template( '/debug/logger.php' ) ?>
     64                </div>
     65            <?php
     66            }
    6367        }
    6468    }
  • woocommerce-shipping-gateway-per-product/trunk/freemius/includes/fs-core-functions.php

    r2934407 r2969263  
    12051205         * @param string $slug    Module slug for overrides.
    12061206         *
    1207          * @return string
     1207         * @return void
    12081208         */
    12091209        function fs_esc_js_echo_x_inline( $text, $context, $key = '', $slug = 'freemius' ) {
  • woocommerce-shipping-gateway-per-product/trunk/freemius/includes/sdk/FreemiusWordPress.php

    r2906140 r2969263  
    474474                        if ( filter_var( $matches[1], FILTER_VALIDATE_IP ) ) {
    475475                            if ( strlen( inet_pton( $matches[1] ) ) === 16 ) {
    476 //                          error_log('Invalid IPv6 configuration on server, Please disable or get native IPv6 on your server.');
    477                                 // Hook to an action triggered just before cURL is executed to resolve the IP version to v4.
     476                                /**
     477                                 * error_log('Invalid IPv6 configuration on server, Please disable or get native IPv6 on your server.');
     478                                 * Hook to an action triggered just before cURL is executed to resolve the IP version to v4.
     479                                 *
     480                                 * @phpstan-ignore-next-line
     481                                 */
    478482                                add_action( 'http_api_curl', 'Freemius_Api_WordPress::CurlResolveToIPv4', 10, 1 );
    479483
  • woocommerce-shipping-gateway-per-product/trunk/freemius/start.php

    r2934407 r2969263  
    1616     * @var string
    1717     */
    18     $this_sdk_version = '2.5.10';
     18    $this_sdk_version = '2.5.12';
    1919
    2020    #region SDK Selection Logic --------------------------------------------------------------------
  • woocommerce-shipping-gateway-per-product/trunk/freemius/templates/forms/license-activation.php

    r2881319 r2969263  
    5353        $all_sites = Freemius::get_sites();
    5454
    55         $subsite_data_by_install_id = array();
    56         $install_url_by_install_id  = array();
     55        $all_site_details          = array();
     56        $subsite_url_by_install_id = array();
     57        $install_url_by_install_id = array();
    5758
    5859        foreach ( $all_sites as $site ) {
     
    6768
    6869            if ( is_object( $install ) ) {
    69                 if ( isset( $subsite_data_by_install_id[ $install->id ] ) ) {
    70                     $clone_subsite_data = $subsite_data_by_install_id[ $install->id ];
    71                     $clone_install_url  = $install_url_by_install_id[ $install->id ];
     70                if ( isset( $subsite_url_by_install_id[ $install->id ] ) ) {
     71                    $clone_subsite_url = $subsite_url_by_install_id[ $install->id ];
     72                    $clone_install_url = $install_url_by_install_id[ $install->id ];
    7273
    7374                    if (
     
    7879                         * @since 2.5.0
    7980                         */
    80                         fs_strip_url_protocol( untrailingslashit( $clone_install_url ) ) === fs_strip_url_protocol( untrailingslashit( $clone_subsite_data['url'] ) ) ||
     81                        fs_strip_url_protocol( untrailingslashit( $clone_install_url ) ) === fs_strip_url_protocol( untrailingslashit( $clone_subsite_url ) ) ||
    8182                        fs_strip_url_protocol( untrailingslashit( $install->url ) ) !== fs_strip_url_protocol( untrailingslashit( $site_details['url'] ) )
    8283                    ) {
     
    8990                }
    9091
    91                 $subsite_data_by_install_id[ $install->id ] = $site_details;
    92                 $install_url_by_install_id[ $install->id ]  = $install->url;
    93             }
     92                $subsite_url_by_install_id[ $install->id ] = $site_details['url'];
     93                $install_url_by_install_id[ $install->id ] = $install->url;
     94            }
     95
     96            $all_site_details[] = $site_details;
    9497        }
    9598
     
    97100            $vars = array(
    98101                'id'                  => $fs->get_id(),
    99                 'sites'               => array_values( $subsite_data_by_install_id ),
     102                'sites'               => $all_site_details,
    100103                'require_license_key' => true
    101104            );
  • woocommerce-shipping-gateway-per-product/trunk/readme.txt

    r2934407 r2969263  
    44Requires at least: 6.0
    55Requires PHP: 7.4
    6 Tested up to: 6.2
    7 Stable tag: 2.3.3
     6Tested up to: 6.3
     7Stable tag: 2.3.4
    88License: GPLv2 or later
    99License URI: http://www.gnu.org/licenses/gpl-2.0.html
     
    9292== Changelog ==
    9393
     94= 2.3.4 =
     95* tested with latest woocommerce
     96* tested with latest wordpress
     97* Update freemius sdk to 2.5.12
     98* minor changes
     99* Vulnerability fixed
     100
    94101= 2.3.3 =
    95102* tested with latest woocommerce
  • woocommerce-shipping-gateway-per-product/trunk/woocommerce-product-shippings.php

    r2934407 r2969263  
    33/**
    44 * Plugin Name: WooCommerce Shipping gateway per Product
    5  * Plugin URI: https://www.dreamfoxmedia.com 
     5 * Plugin URI: https://www.dreamfoxmedia.com
    66 * Description: WooCommerce Shipping gateway per Product
    7  * Version: 2.3.3
     7 * Version: 2.3.4
    88 * Author: Dreamfox
    9  * Author URI: https://www.dreamfoxmedia.com 
     9 * Author URI: https://www.dreamfoxmedia.com
    1010 * Text Domain: dreamfoxmedia
    1111 * Domain Path: /languages
     
    2121    exit;
    2222}
     23add_action( 'before_woocommerce_init', function () {
     24    if ( class_exists( \Automattic\WooCommerce\Utilities\FeaturesUtil::class ) ) {
     25        \Automattic\WooCommerce\Utilities\FeaturesUtil::declare_compatibility( 'custom_order_tables', __FILE__, true );
     26    }
     27} );
    2328
    2429if ( function_exists( 'dfm_sgppfw_fs' ) ) {
     
    4853                    'premium_suffix' => 'Premium',
    4954                    'has_addons'     => false,
     55                    'navigation'     => 'tabs',
    5056                    'has_paid_plans' => true,
    5157                    'menu'           => array(
     
    126132    }
    127133   
     134    function softsdev_remove_empty_items( $ships )
     135    {
     136       
     137        if ( is_array( $ships ) ) {
     138            $result = array();
     139            foreach ( $ships as $ship ) {
     140                if ( strlen( trim( $ship ) ) > 0 ) {
     141                    $result[] = $ship;
     142                }
     143            }
     144        } else {
     145            $result = $ships;
     146        }
     147       
     148        return $result;
     149    }
     150   
    128151    add_action( 'init', 'product_shipping_support_email' );
    129152    // display default admin notice
     
    154177    }
    155178    /**
    156      * 
     179     *
    157180     * @param string $text
    158181     * @return string
     
    167190   
    168191    /**
    169      * 
     192     *
    170193     * @param string $text
    171194     * @return string
     
    204227    }
    205228    /**
    206      * 
     229     *
    207230     * @global type $post
    208231     * @global type $woocommerce
     
    267290    );
    268291    /**
    269      * 
     292     *
    270293     * @param type $post_id
    271294     * @param type $post
     
    312335   
    313336    /**
    314      * 
     337     *
    315338     * @global type $woocommerce
    316339     * @param type $available_methods
     
    318341     */
    319342    /**
    320      * 
     343     *
    321344     * @global type $woocommerce
    322345     * @param type $available_methods
     
    345368                   
    346369                    }
     370                    $ships = softsdev_remove_empty_items( $ships );
    347371                   
    348372                    if ( count( $ships ) > 1 ) {
     
    363387                            $ships = array_merge( $ships, $itemsShips );
    364388                        }
    365                    
     389                       
     390                        $ships = softsdev_remove_empty_items( $ships );
    366391                    }
    367392                }
     
    434459    } );
    435460    /**
    436      * 
     461     *
    437462     */
    438463    function update_user_database()
     
    475500    {
    476501        wp_enqueue_style( 'softsdev_product_shippings_enqueue', plugin_dir_url( __FILE__ ) . '/css/style.css' );
     502        wp_register_script( 'softsdev_product_shippings_setting_script', plugins_url( '/js/setting.js', __FILE__ ), array( 'jquery' ) );
     503        wp_enqueue_script( 'softsdev_product_shippings_setting_script' );
     504        $data_to_pass = array(
     505            'base_url' => get_bloginfo( 'url' ),
     506        );
     507        wp_localize_script( 'softsdev_product_shippings_setting_script', 'dd_settings_data', $data_to_pass );
    477508    }
    478509   
     
    484515        add_filter( 'admin_footer_text', 'softsdev_product_shippings_footer_text' );
    485516        add_filter( 'update_footer', 'softsdev_product_shippings_update_footer' );
    486         echo  '<div class="wrap wrap-mc-paid"><div id="icon-tools" class="icon32"></div>' ;
     517        echo  '<div class="wrap wrap-mc-paid fs-section dd-wc-product-shippings"><div id="icon-tools" class="icon32"></div>' ;
     518        $setting_url = get_bloginfo( 'url' ) . '/wp-admin/admin.php?page=softsdev-product-shippings';
     519        echo  <<<EOD
     520          <h2 class="nav-tab-wrapper" id="settings">
     521            <a href="{$setting_url}" class="nav-tab fs-tab nav-tab-active home">Settings</a>
     522          </h2>
     523EOD
     524 ;
    487525        echo  '<h2 class="title">' . __( 'Woocommerce Product Shippings', 'softsdev' ) . '</h2></div>' ;
    488526        ?>
     
    549587            IMPORTANT: We are using a new license system. If you have trouble with your license then see this link:<br>
    550588            <a href="https://support.dreamfoxmedia.com/en/article/transferring-our-licenses-from-our-own-system-to-freemius-1skikqp/" target="_blank">Click here to see the complete article</a>
    551            
     589
    552590            </div>
    553591
     
    627665    'widget_id':72000002383
    628666    };
    629     !function(){if("function"!=typeof window.FreshworksWidget){var n=function(){n.q.push(arguments)};n.q=[],window.FreshworksWidget=n}}() 
     667    !function(){if("function"!=typeof window.FreshworksWidget){var n=function(){n.q.push(arguments)};n.q=[],window.FreshworksWidget=n}}()
    630668</script>
    631669<script type='text/javascript' src='https://widget.freshworks.com/widgets/72000002383.js' async defer></script>
Note: See TracChangeset for help on using the changeset viewer.