PluginProbe ʕ •ᴥ•ʔ
Tutor LMS – eLearning and online course solution / 3.7.1
Tutor LMS – eLearning and online course solution v3.7.1
3.9.15 3.9.14 3.9.13 3.9.12 3.9.11 trunk 1.0.0 1.0.0-alpha 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 1.2.0 1.2.1 1.2.11 1.2.12 1.2.13 1.2.20 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.9 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 1.7.3 1.7.4 1.7.5 1.7.6 1.7.7 1.7.8 1.7.9 1.8.0 1.8.1 1.8.10 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9.0 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.14 1.9.15 1.9.16 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.10 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 2.1.1 2.1.10 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.3.0 2.4.0 2.5.0 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 3.0.0 3.0.1 3.0.2 3.1.0 3.2.0 3.2.1 3.2.2 3.2.3 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.7.0 3.7.1 3.7.2 3.7.3 3.7.4 3.8.0 3.8.1 3.8.2 3.8.3 3.9.0 3.9.1 3.9.10 3.9.2 3.9.3 3.9.4 3.9.5 3.9.6 3.9.7 3.9.8 3.9.9
tutor / ecommerce / Cart / WooCart.php
tutor / ecommerce / Cart Last commit date
Contracts 1 year ago BaseCart.php 1 year ago CartFactory.php 1 year ago EddCart.php 1 year ago NativeCart.php 1 year ago WooCart.php 1 year ago
WooCart.php
131 lines
1 <?php
2 /**
3 * Woo cart logics handler
4 *
5 * @package Tutor\Ecommerce
6 * @author Themeum
7 * @link https://themeum.com
8 * @since 3.5.0
9 */
10
11 namespace Tutor\Ecommerce\Cart;
12
13 use Tutor\Ecommerce\Cart\Contracts\CartInterface;
14
15 if ( ! defined( 'ABSPATH' ) ) {
16 exit;
17 }
18 /**
19 * Class for managing woocommere cart functions
20 *
21 * @since 3.5.0
22 */
23 class WooCart extends BaseCart implements CartInterface {
24
25 /**
26 * WC_Cart object
27 *
28 * @var WC_Cart
29 */
30 private $cart;
31
32 /**
33 * Constructor
34 *
35 * @since 3.5.0
36 */
37 public function __construct() {
38 parent::__construct();
39 $this->cart = WC()->cart;
40 }
41
42 /**
43 * Add to cart
44 *
45 * @since 3.5.0
46 *
47 * @param int $item_id Item id to add to cart.
48 *
49 * @return bool
50 */
51 public function add( int $item_id ): bool {
52 $wc_product_id = tutor_utils()->get_course_product_id( $item_id );
53 if ( ! $wc_product_id ) {
54 $this->cart_error = __( 'Woocommerce Product not found', 'tutor' );
55 return false;
56 }
57
58 if ( $this->is_item_exists( $item_id ) ) {
59 $this->cart_error = __( 'Item already exists in cart', 'tutor' );
60 return false;
61 } else {
62 return $this->cart->add_to_cart( $wc_product_id ) ? true : false;
63 }
64 }
65
66 /**
67 * Remove an item from cart
68 *
69 * @since 3.5.0
70 *
71 * @param integer $item_id Item id to add to cart.
72 *
73 * @return boolean
74 */
75 public function remove( int $item_id ): bool {
76 // @TODO
77 return false;
78 }
79
80 /**
81 * Clear the cart entirely
82 *
83 * @since 3.5.0
84 *
85 * @return boolean
86 */
87 public function clear_cart(): bool {
88 // @TODO
89 return false;
90 }
91
92
93 /**
94 * Get cart items
95 *
96 * @since 3.5.0
97 *
98 * @return array Array of objects
99 */
100 public function get_cart_items(): array {
101 $items = array();
102 // @TODO need to implement this.
103 return $items;
104 }
105
106 /**
107 * Get cart page url to view the cart
108 *
109 * @since 3.5.0
110 *
111 * @return string
112 */
113 public function get_cart_url(): string {
114 return wc_get_cart_url();
115 }
116
117 /**
118 * Check if item exists in cart
119 *
120 * @since 3.5.0
121 *
122 * @param int $item_id Item id.
123 *
124 * @return bool
125 */
126 public function is_item_exists( int $item_id ): bool {
127 $product_id = tutor_utils()->get_course_product_id( $item_id );
128 return (bool) $this->cart->find_product_in_cart( $this->cart->generate_cart_id( $product_id ) );
129 }
130 }
131