PluginProbe ʕ •ᴥ•ʔ
Tutor LMS – eLearning and online course solution / 3.9.13
Tutor LMS – eLearning and online course solution v3.9.13
4.0.0 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 / includes / kirki / backend / ElementGenerator / PriceGenerator.php
tutor / includes / kirki / backend / ElementGenerator Last commit date
ActionsGenerator.php 2 months ago AddRatingGenerator.php 2 months ago CourseMetaGenerator.php 2 months ago ElementGenerator.php 2 months ago MaterialGenerator.php 2 months ago Preview.php 2 months ago PriceGenerator.php 2 months ago SocialLinkGenerator.php 2 months ago ThumbnailGenerator.php 2 months ago
PriceGenerator.php
121 lines
1 <?php
2
3 /**
4 * Preview script for html markup generator
5 *
6 * @package tutor-kirki-elements
7 */
8
9 namespace TutorLMSKirki\ElementGenerator;
10
11 use TUTOR\Course;
12 use TutorPro\Subscription\Models\PlanModel;
13 use TutorPro\Subscription\Subscription;
14
15 if (! defined('ABSPATH')) {
16 exit; // Exit if accessed directly.
17 }
18
19 /**
20 * Class ActionsGenerator
21 * This class is used to define all helper functions.
22 *
23 * @package TutorLMSKirki\ElementGenerator
24 */
25 trait PriceGenerator
26 {
27
28 /**
29 * Generate actionbox markup
30 *
31 * @return string
32 */
33 private function generate_price_markup()
34 {
35 $course_id = isset($this->options['post']) ? $this->options['post']->ID : get_the_ID();
36 $type = isset($this->properties['type']) ? $this->properties['type'] : 'free';
37 if (! $course_id) {
38 return '';
39 }
40
41 $selling_option = Course::get_selling_option($course_id);
42
43 $is_membership_only_mode_enabled = apply_filters( 'tutor_membership_only_mode', false );
44
45 if(!$selling_option){
46 $selling_option = Course::SELLING_OPTION_ALL;
47 }
48
49 switch ($type) {
50 case 'free': {
51 if (! $this->isPaidCourse($course_id) && !$is_membership_only_mode_enabled) {
52 return $this->generate_common_element();
53 }
54 return "";
55 }
56 case 'paid': {
57 if ($selling_option === Course::SELLING_OPTION_ALL || $selling_option === Course::SELLING_OPTION_ONE_TIME || $selling_option === Course::SELLING_OPTION_BOTH) {
58 if ($this->isPaidCourse($course_id) && !$is_membership_only_mode_enabled) {
59 return $this->generate_common_element();
60 }
61 }
62 return '';
63 }
64 case 'subscription': {
65 if ($selling_option === Course::SELLING_OPTION_ALL || $selling_option === Course::SELLING_OPTION_SUBSCRIPTION || $selling_option === Course::SELLING_OPTION_BOTH) {
66 if (tutor()->has_pro && Subscription::is_enabled() && !$is_membership_only_mode_enabled) {
67 $plan_model = new PlanModel();
68 $active_subscription_plans = $plan_model->get_subscription_plans($course_id, PlanModel::STATUS_ACTIVE);
69 if ($this->isPaidCourse($course_id) && count($active_subscription_plans) > 0) {
70 return $this->generate_common_element('', '', 'data-type="subscription"');
71 }
72 }
73 }
74 return "";
75 }
76 default: {
77 return '';
78 }
79 }
80 return '';
81 }
82 private function generate_price_value_markup()
83 {
84 $course_id = isset($this->options['post']) ? $this->options['post']->ID : get_the_ID();
85 $type = isset($this->properties['type']) ? $this->properties['type'] : 'sale';
86 if (! $course_id || ! $this->isPaidCourse($course_id)) {
87 return '';
88 }
89
90 $sale_price = self::get_course_meta('sale_price', $course_id, $this->options);
91 $course_price = self::get_course_meta('course_price', $course_id, $this->options);
92
93 switch ($type) {
94 case 'sale': {
95 if ($sale_price) {
96 return $this->generate_common_element(false, $sale_price);
97 } else {
98 return $this->generate_common_element(false, $course_price);
99 }
100 break;
101 }
102 case 'regular': {
103 if ($sale_price) {
104 return $this->generate_common_element(false, $course_price);
105 }
106 break;
107 }
108 default: {
109 return '';
110 }
111 }
112 return '';
113 }
114
115 private function isPaidCourse($course_id)
116 {
117 $is_paid_course = tutor_utils()->is_course_purchasable($course_id);
118 return $is_paid_course;
119 }
120 }
121