PluginProbe
Discount Rules for WooCommerce – Disco | Dynamic Pricing, Conditions, Bulk, Bundle, BOGO / 1.4.14
Discount Rules for WooCommerce – Disco | Dynamic Pricing, Conditions, Bulk, Bundle, BOGO v1.4.14
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 1.3.45 All 177 releases
disco / app / Intents / BulkIntent.php

BulkIntent.php in Discount Rules for WooCommerce – Disco | Dynamic Pricing, Conditions, Bulk, Bundle, BOGO 1.4.14, at app/Intents/BulkIntent.php

83 lines 1.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * @package Disco
4 * @subpackage \App\Intents
5 */
6
7 namespace Disco\App\Intents;
8
9 /**
10 * Class Cart
11 *
12 * @package Disco
13 * @subpackage \App\Intents
14 * @author Ohidul Islam <wahid0003@gmail.com>
15 * @link https://webappick.com
16 * @license https://opensource.org/licenses/gpl-license.php GNU Public License
17 * @category Intention
18 */
19 class BulkIntent extends Intent {
20
21 /**
22 * Intent constructor.
23 *
24 * @param \Disco\App\Utility\Config $campaign Campaign Config.
25 * @param \Disco\App\Utility\Settings $settings Global Settings.
26 */
27 public function __construct( $campaign, $settings ) {
28 parent::__construct( $campaign, $settings );
29
30 $this->campaign = $campaign;
31 $this->settings = $settings;
32 }
33
34 /**
35 * Apply Bulk intention.
36 * Bulk Discount Configuration.
37 *
38 * @param array $items Discount Applicable Cart Items.
39 * @param \WC_Cart $cart Cart.
40 * @return array
41 */
42 public function get_discounts( $items, $cart ) {//phpcs:ignore
43 return $this->get_item_discounts( $this->campaign, $items, $cart );
44 }
45
46
47 /**
48 * Get offers for Cart intention.
49 *
50 * @param array $items Discount Applicable Cart Items.
51 * @param \WC_Cart $cart Cart.
52 * @return array|bool
53 */
54 public function get_offers( $items, $cart ) { //phpcs:ignore
55 if ( empty( $items ) ) {
56 return false;
57 }
58
59 $offers = array();
60 $rules = $this->campaign->get_discount_rules();
61
62 if ( is_array( $rules ) && ! empty( $rules ) ) {
63 foreach ( $rules as $rule ) {
64 $rule = (array) $rule;
65
66 if ( 'percent' === $rule['discount_type'] ) {
67 $discount = $rule['discount_value'] . '% off';
68 } else {
69 $discount = wc_price( $rule['discount_value'] ) . ' off';
70 }
71
72 $offers[] = array(
73 'condition' => $rule['min'] . ' - ' . $rule['max'],
74 'discount' => '<b>' . $discount . '</b>',
75 );
76 }
77 }
78
79 return $offers;
80 }
81
82 }
83