Plugin Directory

Changeset 3412818


Ignore:
Timestamp:
12/06/2025 08:05:14 AM (3 months ago)
Author:
repon.wp
Message:

city-zip-based-shipping-rate-for-woocommerce-1.0.0

Location:
city-zip-based-shipping-rate-for-woocommerce
Files:
4 added
6 edited

Legend:

Unmodified
Added
Removed
  • city-zip-based-shipping-rate-for-woocommerce/tags/1.0.0/inc/class-location-shipping-rate.php

    r3406565 r3412818  
    3535     */
    3636
    37     public function __construct($instance_id, $package) {
     37    public function __construct($instance_id, $package = array()) {
    3838        $shipping_method = \WC_Shipping_Zones::get_shipping_method($instance_id);
    3939        if (!is_a($shipping_method, Shipping_Method::class)) {
     
    6363
    6464        return false;
     65    }
     66
     67    /**
     68     * Get available cities
     69     *
     70     * @since 1.0.0
     71     * @return array
     72     */
     73    public function get_cities() {
     74        $line_items = $this->get_setting('line_items');
     75        if (is_array($line_items) && count($line_items) == 0) {
     76            return array();
     77        }
     78
     79        $cities = array();
     80        foreach ($line_items as $line_item) {
     81            if (empty($line_item['cities'])) {
     82                continue;
     83            }
     84
     85            array_push($cities, ...$line_item['cities']);
     86        }
     87
     88        sort($cities);
     89        return $cities;
    6590    }
    6691
  • city-zip-based-shipping-rate-for-woocommerce/tags/1.0.0/inc/class-main.php

    r3408737 r3412818  
    5454     */
    5555    public function hooks() {
     56        add_action('wp_enqueue_scripts', array($this, 'enqueue_scripts'));
    5657        add_filter('plugin_action_links', array($this, 'add_plugin_links'), 10, 2);
    5758        add_filter('woocommerce_shipping_methods', array($this, 'add_shipping_method'));
     
    9495        return $methods;
    9596    }
     97
     98    /**
     99     * Implement styles and scripts
     100     *
     101     * @since 1.0.0
     102     * @return void
     103     */
     104    public function enqueue_scripts() {
     105        wp_enqueue_script('city-zip-based-shipping-rate', CITY_ZIP_BASED_SHIPPING_RATE_URI . 'assets/frontend.min.js', ['jquery'], Utils::get_plugin_version(), true);
     106    }
    96107}
    97108
  • city-zip-based-shipping-rate-for-woocommerce/tags/1.0.0/inc/class-utils.php

    r3406565 r3412818  
    9595        return $cart_item_data;
    9696    }
     97
     98    /**
     99     * Get current city based shipping rate
     100     *
     101     * @since 1.0.0
     102     * @return false|Location_Shipping
     103     */
     104    public static function get_current_shipping_rate() {
     105        if (!WC()->shipping()) {
     106            return false;
     107        }
     108
     109        $packages = WC()->shipping()->get_packages();
     110        if (!isset($packages[0])) {
     111            return false;
     112        }
     113
     114        $location_shipping = false;
     115        $zone = wc_get_shipping_zone($packages[0]);
     116        $methods = $zone->get_shipping_methods();
     117        if (is_array($methods)) {
     118            foreach ($methods as $method) {
     119                if ('city_zip_based_shipping_method' === $method->id) {
     120                    $location_shipping = new Location_Shipping($method->get_instance_id());
     121                }
     122            }
     123        }
     124
     125        return $location_shipping;
     126    }
    97127}
  • city-zip-based-shipping-rate-for-woocommerce/trunk/inc/class-location-shipping-rate.php

    r3406565 r3412818  
    3535     */
    3636
    37     public function __construct($instance_id, $package) {
     37    public function __construct($instance_id, $package = array()) {
    3838        $shipping_method = \WC_Shipping_Zones::get_shipping_method($instance_id);
    3939        if (!is_a($shipping_method, Shipping_Method::class)) {
     
    6363
    6464        return false;
     65    }
     66
     67    /**
     68     * Get available cities
     69     *
     70     * @since 1.0.0
     71     * @return array
     72     */
     73    public function get_cities() {
     74        $line_items = $this->get_setting('line_items');
     75        if (is_array($line_items) && count($line_items) == 0) {
     76            return array();
     77        }
     78
     79        $cities = array();
     80        foreach ($line_items as $line_item) {
     81            if (empty($line_item['cities'])) {
     82                continue;
     83            }
     84
     85            array_push($cities, ...$line_item['cities']);
     86        }
     87
     88        sort($cities);
     89        return $cities;
    6590    }
    6691
  • city-zip-based-shipping-rate-for-woocommerce/trunk/inc/class-main.php

    r3408737 r3412818  
    5454     */
    5555    public function hooks() {
     56        add_action('wp_enqueue_scripts', array($this, 'enqueue_scripts'));
    5657        add_filter('plugin_action_links', array($this, 'add_plugin_links'), 10, 2);
    5758        add_filter('woocommerce_shipping_methods', array($this, 'add_shipping_method'));
     
    9495        return $methods;
    9596    }
     97
     98    /**
     99     * Implement styles and scripts
     100     *
     101     * @since 1.0.0
     102     * @return void
     103     */
     104    public function enqueue_scripts() {
     105        wp_enqueue_script('city-zip-based-shipping-rate', CITY_ZIP_BASED_SHIPPING_RATE_URI . 'assets/frontend.min.js', ['jquery'], Utils::get_plugin_version(), true);
     106    }
    96107}
    97108
  • city-zip-based-shipping-rate-for-woocommerce/trunk/inc/class-utils.php

    r3406565 r3412818  
    9595        return $cart_item_data;
    9696    }
     97
     98    /**
     99     * Get current city based shipping rate
     100     *
     101     * @since 1.0.0
     102     * @return false|Location_Shipping
     103     */
     104    public static function get_current_shipping_rate() {
     105        if (!WC()->shipping()) {
     106            return false;
     107        }
     108
     109        $packages = WC()->shipping()->get_packages();
     110        if (!isset($packages[0])) {
     111            return false;
     112        }
     113
     114        $location_shipping = false;
     115        $zone = wc_get_shipping_zone($packages[0]);
     116        $methods = $zone->get_shipping_methods();
     117        if (is_array($methods)) {
     118            foreach ($methods as $method) {
     119                if ('city_zip_based_shipping_method' === $method->id) {
     120                    $location_shipping = new Location_Shipping($method->get_instance_id());
     121                }
     122            }
     123        }
     124
     125        return $location_shipping;
     126    }
    97127}
Note: See TracChangeset for help on using the changeset viewer.