From d7bf7c7ec8fb5501cf09510627735aca4b183b11 Mon Sep 17 00:00:00 2001 From: Geert De Deckere Date: Tue, 5 Jun 2012 09:48:46 +0200 Subject: [PATCH 1/2] Applied woocommerce filter to all return values of the is_available method --- classes/shipping/class-wc-local-pickup.php | 43 +++++++++++----------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/classes/shipping/class-wc-local-pickup.php b/classes/shipping/class-wc-local-pickup.php index 4d3a7de2134..57adb9672c6 100644 --- a/classes/shipping/class-wc-local-pickup.php +++ b/classes/shipping/class-wc-local-pickup.php @@ -87,28 +87,29 @@ class WC_Local_Pickup extends WC_Shipping_Method { enabled=="no") return false; + function is_available( $package ) { + global $woocommerce; + $is_available = true; + + if ( $this->enabled == 'no' ) { + $is_available = false; + } else { + $ship_to_countries = ''; + + if ( $this->availability == 'specific' ) { + $ship_to_countries = $this->countries; + } elseif ( get_option( 'woocommerce_allowed_countries' ) == 'specific' ) { + $ship_to_countries = get_option( 'woocommerce_specific_allowed_countries' ); + } + + if ( is_array( $ship_to_countries ) && ! in_array( $package['destination']['country'], $ship_to_countries ) ) { + $is_available = false; + } + } + + return apply_filters( 'woocommerce_shipping_' . $this->id . '_is_available', $is_available ); + } - $ship_to_countries = ''; - - if ($this->availability == 'specific') : - $ship_to_countries = $this->countries; - else : - if (get_option('woocommerce_allowed_countries')=='specific') : - $ship_to_countries = get_option('woocommerce_specific_allowed_countries'); - endif; - endif; - - if (is_array($ship_to_countries)) - if ( ! in_array( $package['destination']['country'], $ship_to_countries ) ) - return false; - - return apply_filters( 'woocommerce_shipping_' . $this->id . '_is_available', true ); - } - } function add_local_pickup_method($methods) { $methods[] = 'WC_Local_Pickup'; return $methods; } From fd8cc65146f55736005b981655e21c4760630fe1 Mon Sep 17 00:00:00 2001 From: Geert De Deckere Date: Tue, 5 Jun 2012 10:13:25 +0200 Subject: [PATCH 2/2] Pass package information to filter --- classes/shipping/class-wc-local-pickup.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/classes/shipping/class-wc-local-pickup.php b/classes/shipping/class-wc-local-pickup.php index 57adb9672c6..139894a2cde 100644 --- a/classes/shipping/class-wc-local-pickup.php +++ b/classes/shipping/class-wc-local-pickup.php @@ -107,7 +107,7 @@ class WC_Local_Pickup extends WC_Shipping_Method { } } - return apply_filters( 'woocommerce_shipping_' . $this->id . '_is_available', $is_available ); + return apply_filters( 'woocommerce_shipping_' . $this->id . '_is_available', $is_available, $package ); } }