PluginProbe
Discount Rules for WooCommerce – Disco | Dynamic Pricing, Conditions, Bulk, Bundle, BOGO / 1.1.9
Discount Rules for WooCommerce – Disco | Dynamic Pricing, Conditions, Bulk, Bundle, BOGO v1.1.9
1.4.15 1.4.14 1.4.13 1.4.12 1.4.11 1.4.10 1.4.9 1.4.8 1.4.7 1.4.6 1.4.5 1.4.4 1.4.3 1.4.2 1.4.1 1.4.0 1.3.54 1.3.53 1.3.52 1.3.51 1.3.50 1.3.49 1.3.48 1.3.47 1.3.46 All 178 releases
disco / functions / shipping.php

shipping.php in Discount Rules for WooCommerce – Disco | Dynamic Pricing, Conditions, Bulk, Bundle, BOGO 1.1.9, at functions/shipping.php

36 lines 1002 B
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 use Disco\App\Disco;
4
5 if ( ! function_exists( 'disco_add_free_shipping_rate' ) ) {
6
7 /**
8 * Add free shipping rate to the package. If any campaign matches, then apply free shipping.
9 *
10 * @param array $rates Array of rates found for the package.
11 * @return array
12 */
13 function disco_add_free_shipping_rate( $rates ) {
14 $is_free_shipping = ( new Disco )->apply_free_shipping( WC()->cart );
15
16 if ( ! $is_free_shipping ) {
17 return $rates;
18 }
19
20 foreach ( $rates as $rate_id => $rate ) {
21 if ( 'free_shipping' === $rate->method_id ) {
22 return $rates;
23 }
24 }
25
26 // If free shipping is not available, override rates with free shipping
27 // TODO: Add Label from campaign
28 $free_shipping_rate = new WC_Shipping_Rate( 'disco_free_shipping', __( 'Free Shipping', 'disco' ), 0, array(), 'disco_free_shipping' );
29 $rates['disco_free_shipping'] = $free_shipping_rate;
30
31 return $rates;
32 }
33
34 add_filter( 'woocommerce_package_rates', 'disco_add_free_shipping_rate', 100, 1 );
35 }
36