Diff: STRATO-apps/wordpress_03/app/wp-content/plugins/tutor-pro/tools/importers/CourseImporter.php
Keine Baseline-Datei – Diff nur gegen leer.
1
-
1
+
<?php
2
+
/**
3
+
* Course Importer
4
+
*
5
+
* @package TutorPro\Tools
6
+
* @author Themeum<support@themeum.com>
7
+
* @link https://themeum.com
8
+
* @since 3.6.0
9
+
*/
10
+
11
+
namespace TutorPro\Tools;
12
+
13
+
use TUTOR\Course;
14
+
use Tutor\Models\CourseModel;
15
+
16
+
if ( ! defined( 'ABSPATH' ) ) {
17
+
exit;
18
+
}
19
+
20
+
21
+
/**
22
+
* Course Importer class.
23
+
*/
24
+
class CourseImporter {
25
+
26
+
/**
27
+
* Set taxonomies to courses.
28
+
*
29
+
* @since 3.6.0
30
+
*
31
+
* @param array $taxonomies the taxonomies to set to courses.
32
+
*
33
+
* @return array
34
+
*/
35
+
public function course_importer_set_categories_tags( $taxonomies ) {
36
+
$result = true;
37
+
38
+
if ( $taxonomies ) {
39
+
foreach ( $taxonomies as $post_id => $terms ) {
40
+
$categories = array_column( $terms['categories'], 'name' );
41
+
$tags = array_column( $terms['tags'], 'name' );
42
+
43
+
$result = wp_set_object_terms( $post_id, $categories, CourseModel::COURSE_CATEGORY );
44
+
45
+
if ( is_wp_error( $result ) ) {
46
+
ErrorHandler::set_error( __( 'Course Term', 'tutor-pro' ), $result->get_error_message() );
47
+
}
48
+
49
+
$result = wp_set_object_terms( $post_id, $tags, CourseModel::COURSE_TAG );
50
+
51
+
if ( is_wp_error( $result ) ) {
52
+
ErrorHandler::set_error( __( 'Course Term', 'tutor-pro' ), $result->get_error_message() );
53
+
}
54
+
}
55
+
}
56
+
57
+
return $result;
58
+
}
59
+
60
+
61
+
62
+
63
+
/**
64
+
* Prepare course meta for insertion.
65
+
*
66
+
* @since 3.6.0
67
+
*
68
+
* @param array $course_metas the array of course meta to prepare.
69
+
* @param bool $keep_media_files whether to download media files or not.
70
+
*
71
+
* @return void
72
+
*/
73
+
public function prepare_course_meta( $course_metas, $keep_media_files = false ) {
74
+
$course_metas = array_map( fn( $val ) => $val[0], $course_metas );
75
+
76
+
$_POST['_tutor_course_additional_data_edit'] = true;
77
+
78
+
Helper::reset_post_data( 'video' );
79
+
80
+
if ( isset( $course_metas['_video'] ) ) {
81
+
$video_data = $course_metas['_video'];
82
+
83
+
if ( isset( $video_data['source'] ) && 'html5' === $video_data['source'] && $keep_media_files ) {
84
+
$video_url = $video_data['source_html5'];
85
+
$upload_data = Helper::upload_file_by_url( $video_url );
86
+
if ( ! is_wp_error( $upload_data ) ) {
87
+
$video_data['source_video_id'] = $upload_data['id'];
88
+
$video_data['source_html5'] = $upload_data['url'];
89
+
}
90
+
}
91
+
92
+
$_POST['video'] = $video_data;
93
+
}
94
+
95
+
Helper::reset_post_data( 'content_drip_settings' );
96
+
97
+
if ( isset( $course_metas['_content_drip_settings'] ) ) {
98
+
$_POST['content_drip_settings'] = $course_metas['_content_drip_settings'];
99
+
}
100
+
101
+
Helper::reset_post_data( COURSE::COURSE_LEVEL_META );
102
+
// Course level meta.
103
+
if ( isset( $course_metas[ COURSE::COURSE_LEVEL_META ] )
104
+
) {
105
+
$_POST[ COURSE::COURSE_LEVEL_META ] = $course_metas[ COURSE::COURSE_LEVEL_META ];
106
+
}
107
+
108
+
Helper::reset_post_data( COURSE::COURSE_SETTINGS_META );
109
+
// Course settings meta.
110
+
if ( isset( $course_metas[ COURSE::COURSE_SETTINGS_META ] ) ) {
111
+
$_POST[ COURSE::COURSE_SETTINGS_META ] = $course_metas[ COURSE::COURSE_SETTINGS_META ];
112
+
}
113
+
114
+
Helper::reset_post_data( 'course_duration' );
115
+
// Course duration meta.
116
+
if ( isset( $course_metas[ COURSE::COURSE_DURATION_META ] ) ) {
117
+
$_POST['course_duration'] = $course_metas[ COURSE::COURSE_DURATION_META ];
118
+
}
119
+
120
+
// Additional course data meta.
121
+
$additional_course_meta_mappings = array(
122
+
'course_benefits' => COURSE::COURSE_BENEFITS_META,
123
+
'course_requirements' => COURSE::COURSE_REQUIREMENTS_META,
124
+
'course_target_audience' => COURSE::COURSE_TARGET_AUDIENCE_META,
125
+
'course_material_includes' => COURSE::COURSE_MATERIAL_INCLUDE_META,
126
+
);
127
+
128
+
foreach ( $additional_course_meta_mappings as $post_key => $meta_key ) {
129
+
Helper::reset_post_data( $post_key );
130
+
if ( isset( $course_metas[ $meta_key ] ) ) {
131
+
$_POST[ $post_key ] = $course_metas[ $meta_key ];
132
+
}
133
+
}
134
+
135
+
Helper::reset_post_data( 'tutor_course_price_type' );
136
+
// Course price type meta.
137
+
if ( isset( $course_metas[ COURSE::COURSE_PRICE_TYPE_META ] ) ) {
138
+
$_POST['tutor_course_price_type'] = $course_metas[ COURSE::COURSE_PRICE_TYPE_META ];
139
+
}
140
+
141
+
Helper::reset_post_data( COURSE::COURSE_PRODUCT_ID_META );
142
+
// Course product id.
143
+
if ( isset( $course_metas[ COURSE::COURSE_PRODUCT_ID_META ] ) ) {
144
+
$_POST[ COURSE::COURSE_PRODUCT_ID_META ] = $course_metas[ COURSE::COURSE_PRODUCT_ID_META ];
145
+
}
146
+
147
+
Helper::reset_post_data( 'course_price' );
148
+
// Course regular price meta.
149
+
if ( isset( $course_metas[ COURSE::COURSE_PRICE_META ] ) ) {
150
+
$_POST['course_price'] = $course_metas[ COURSE::COURSE_PRICE_META ];
151
+
}
152
+
153
+
Helper::reset_post_data( 'course_sale_price' );
154
+
// Course sale price meta.
155
+
if ( isset( $course_metas[ COURSE::COURSE_SALE_PRICE_META ] ) ) {
156
+
$_POST['course_sale_price'] = $course_metas[ COURSE::COURSE_SALE_PRICE_META ];
157
+
$_REQUEST['course_sale_price'] = $course_metas[ COURSE::COURSE_SALE_PRICE_META ];
158
+
}
159
+
160
+
Helper::reset_post_data( 'course_selling_option' );
161
+
// Course selling option.
162
+
if ( isset( $course_metas[ COURSE::COURSE_SELLING_OPTION_META ] ) ) {
163
+
$_POST['course_selling_option'] = $course_metas[ COURSE::COURSE_SELLING_OPTION_META ];
164
+
}
165
+
166
+
Helper::reset_post_data( 'tutor_course_certificate_template' );
167
+
// Tutor certificate meta.
168
+
if ( isset( $course_metas['tutor_course_certificate_template'] ) ) {
169
+
$_POST['tutor_course_certificate_template'] = $course_metas['tutor_course_certificate_template'];
170
+
}
171
+
172
+
Helper::reset_post_data( COURSE::COURSE_ENABLE_QA_META );
173
+
// Tutor course enable qa meta.
174
+
if ( isset( $course_metas[ COURSE::COURSE_ENABLE_QA_META ] ) && 'yes' === $course_metas[ COURSE::COURSE_ENABLE_QA_META ] ) {
175
+
$_POST[ COURSE::COURSE_ENABLE_QA_META ] = 'yes';
176
+
}
177
+
178
+
Helper::reset_post_data( COURSE::PUBLIC_COURSE_META );
179
+
// Tutor public course meta.
180
+
if ( isset( $course_metas[ COURSE::PUBLIC_COURSE_META ] ) && 'yes' === $course_metas[ COURSE::PUBLIC_COURSE_META ] ) {
181
+
$_POST[ COURSE::PUBLIC_COURSE_META ] = 'yes';
182
+
}
183
+
184
+
Helper::reset_post_data( 'enable_coming_soon' );
185
+
Helper::reset_post_data( 'enable_curriculum_preview' );
186
+
// Tutor coming soon meta.
187
+
if ( isset( $course_metas['_tutor_course_enable_coming_soon'] ) ) {
188
+
$_POST['enable_coming_soon'] = $course_metas['_tutor_course_enable_coming_soon'];
189
+
$_POST['enable_curriculum_preview'] = $course_metas['_tutor_course_enable_curriculum_preview'];
190
+
}
191
+
}
192
+
}
193
+