PluginProbe
Import Social Events / 1.1.0
Import Social Events v1.1.0
1.9.1 1.9.0 trunk 1.0.0 1.0.1 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.2.0 1.3.0 1.4.0 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.6.0 1.6.1 1.6.10 1.6.11 1.6.12 All 61 releases
import-facebook-events / includes / class-import-facebook-events-ife.php

class-import-facebook-events-ife.php in Import Social Events 1.1.0, at includes/class-import-facebook-events-ife.php

205 lines 8.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Class for Import Events into Builtin Events.
4 *
5 * @link http://xylusthemes.com/
6 * @since 1.0.0
7 *
8 * @package Import_Facebook_Events
9 * @subpackage Import_Facebook_Events/includes
10 */
11 // Exit if accessed directly
12 if ( ! defined( 'ABSPATH' ) ) exit;
13
14 class Import_Facebook_Events_IFE {
15
16 // Event Taxonomy
17 protected $taxonomy;
18
19 // Event Posttype
20 protected $event_posttype;
21
22 /**
23 * Initialize the class and set its properties.
24 *
25 * @since 1.0.0
26 */
27 public function __construct() {
28
29 $this->event_posttype = 'facebook_events';
30 $this->taxonomy = 'facebook_category';
31
32 }
33
34 /**
35 * Get Posttype and Taxonomy Functions
36 *
37 * @return string
38 */
39 public function get_event_posttype(){
40 return $this->event_posttype;
41 }
42 public function get_taxonomy(){
43 return $this->taxonomy;
44 }
45
46 /**
47 * import event into TEC
48 *
49 * @since 1.0.0
50 * @param array $centralize event array.
51 * @return array
52 */
53 public function import_event( $centralize_array, $event_args ){
54 global $wpdb, $ife_events;
55
56 if( empty( $centralize_array ) || !isset( $centralize_array['ID'] ) ){
57 return false;
58 }
59
60 $is_exitsing_event = $ife_events->common->get_event_by_event_id( $this->event_posttype, $centralize_array['ID'] );
61
62 if ( $is_exitsing_event ) {
63 // Update event or not?
64 $options = ife_get_import_options( $centralize_array['origin'] );
65 $update_events = isset( $options['update_events'] ) ? $options['update_events'] : 'no';
66 if ( 'yes' != $update_events ) {
67 return array( 'status'=> 'skipped' );
68 }
69 }
70
71 $origin_event_id = $centralize_array['ID'];
72 $post_title = isset( $centralize_array['name'] ) ? $centralize_array['name'] : '';
73 $post_description = isset( $centralize_array['description'] ) ? $centralize_array['description'] : '';
74 $start_time = $centralize_array['starttime_local'];
75 $end_time = $centralize_array['endtime_local'];
76 $ticket_uri = $centralize_array['url'];
77
78 $emeventdata = array(
79 'post_title' => $post_title,
80 'post_content' => $post_description,
81 'post_type' => $this->event_posttype,
82 'post_status' => 'pending',
83 );
84 if ( $is_exitsing_event ) {
85 $emeventdata['ID'] = $is_exitsing_event;
86 }
87 if( isset( $event_args['event_status'] ) && $event_args['event_status'] != '' ){
88 $emeventdata['post_status'] = $event_args['event_status'];
89 }
90
91 $inserted_event_id = wp_insert_post( $emeventdata, true );
92
93 if ( ! is_wp_error( $inserted_event_id ) ) {
94 $inserted_event = get_post( $inserted_event_id );
95 if ( empty( $inserted_event ) ) { return '';}
96
97 // Asign event category.
98 $ife_cats = isset( $event_args['event_cats'] ) ? $event_args['event_cats'] : array();
99 if ( ! empty( $ife_cats ) ) {
100 foreach ( $ife_cats as $ife_catk => $ife_catv ) {
101 $ife_cats[ $ife_catk ] = (int) $ife_catv;
102 }
103 }
104 if ( ! empty( $ife_cats ) ) {
105 wp_set_object_terms( $inserted_event_id, $ife_cats, $this->taxonomy );
106 }
107
108 // Assign Featured images
109 $event_image = $centralize_array['image_url'];
110 if( $event_image != '' ){
111 $ife_events->common->setup_featured_image_to_event( $inserted_event_id, $event_image );
112 }else{
113 if( $is_exitsing_event ){
114 delete_post_thumbnail( $inserted_event_id );
115 }
116 }
117
118 //////////////////////////////////////////////
119 // Event Date & time Details
120 $event_start_date = date( 'Y-m-d', $start_time );
121 $event_end_date = date( 'Y-m-d', $end_time );
122 $event_start_hour = date( 'h', $start_time );
123 $event_start_minute = date( 'i', $start_time );
124 $event_start_meridian = date( 'a', $start_time );
125 $event_end_hour = date( 'h', $end_time );
126 $event_end_minute = date( 'i', $end_time );
127 $event_end_meridian = date( 'a', $end_time );
128
129 // Venue Deatails
130 $address_1 = isset( $venue_array['address_1'] ) ? $venue_array['address_1'] : '';
131 $venue_array = isset( $centralize_array['location'] ) ? $centralize_array['location'] : array();
132 $venue_name = isset( $venue_array['name'] ) ? sanitize_text_field( $venue_array['name'] ) : '';
133 $venue_address = isset( $venue_array['full_address'] ) ? sanitize_text_field( $venue_array['full_address'] ) : sanitize_text_field( $address_1 );
134 $venue_city = isset( $venue_array['city'] ) ? sanitize_text_field( $venue_array['city'] ) : '';
135 $venue_state = isset( $venue_array['state'] ) ? sanitize_text_field( $venue_array['state'] ) : '';
136 $venue_country = isset( $venue_array['country'] ) ? sanitize_text_field( $venue_array['country'] ) : '';
137 $venue_zipcode = isset( $venue_array['zip'] ) ? sanitize_text_field( $venue_array['zip'] ) : '';
138
139 $venue_lat = isset( $venue_array['lat'] ) ? sanitize_text_field( $venue_array['lat'] ) : '';
140 $venue_lon = isset( $venue_array['long'] ) ? sanitize_text_field( $venue_array['long'] ) : '';
141 $venue_url = isset( $venue_array['url'] ) ? esc_url( $venue_array['url'] ) : '';
142
143 // Oraganizer Deatails
144 $organizer_array = isset( $centralize_array['organizer'] ) ? $centralize_array['organizer'] : array();
145 $organizer_name = isset( $organizer_array['name'] ) ? sanitize_text_field( $organizer_array['name'] ) : '';
146 $organizer_email = isset( $organizer_array['email'] ) ? sanitize_text_field( $organizer_array['email'] ) : '';
147 $organizer_phone = isset( $organizer_array['phone'] ) ? sanitize_text_field( $organizer_array['phone'] ) : '';
148 $organizer_url = isset( $organizer_array['url'] ) ? sanitize_text_field( $organizer_array['url'] ) : '';
149
150 // Save Event Data
151 // Date & Time
152 update_post_meta( $inserted_event_id, 'event_start_date', $event_start_date );
153 update_post_meta( $inserted_event_id, 'event_start_hour', $event_start_hour );
154 update_post_meta( $inserted_event_id, 'event_start_minute', $event_start_minute );
155 update_post_meta( $inserted_event_id, 'event_start_meridian', $event_start_meridian );
156 update_post_meta( $inserted_event_id, 'event_end_date', $event_end_date );
157 update_post_meta( $inserted_event_id, 'event_end_hour', $event_end_hour );
158 update_post_meta( $inserted_event_id, 'event_end_minute', $event_end_minute );
159 update_post_meta( $inserted_event_id, 'event_end_meridian', $event_end_meridian );
160 update_post_meta( $inserted_event_id, 'start_ts', $start_time );
161 update_post_meta( $inserted_event_id, 'end_ts', $end_time );
162
163 // Venue
164 update_post_meta( $inserted_event_id, 'venue_name', $venue_name );
165 update_post_meta( $inserted_event_id, 'venue_address', $venue_address );
166 update_post_meta( $inserted_event_id, 'venue_city', $venue_city );
167 update_post_meta( $inserted_event_id, 'venue_state', $venue_state );
168 update_post_meta( $inserted_event_id, 'venue_country', $venue_country );
169 update_post_meta( $inserted_event_id, 'venue_zipcode', $venue_zipcode );
170 update_post_meta( $inserted_event_id, 'venue_lat', $venue_lat );
171 update_post_meta( $inserted_event_id, 'venue_lon', $venue_lon );
172 update_post_meta( $inserted_event_id, 'venue_url', $venue_url );
173
174 // Organizer
175 update_post_meta( $inserted_event_id, 'organizer_name', $organizer_name );
176 update_post_meta( $inserted_event_id, 'organizer_email', $organizer_email );
177 update_post_meta( $inserted_event_id, 'organizer_phone', $organizer_phone );
178 update_post_meta( $inserted_event_id, 'organizer_url', $organizer_url );
179
180 update_post_meta( $inserted_event_id, 'ife_facebook_event_id', $centralize_array['ID'] );
181 update_post_meta( $inserted_event_id, 'ife_event_link', esc_url( $ticket_uri ) );
182 update_post_meta( $inserted_event_id, 'ife_event_origin', $event_args['import_origin'] );
183
184
185 if ( $is_exitsing_event ) {
186 do_action( 'ife_after_update_ife_'.$centralize_array["origin"].'_event', $inserted_event_id, $centralize_array );
187 return array(
188 'status' => 'updated',
189 'id' => $inserted_event_id
190 );
191 }else{
192 do_action( 'ife_after_create_ife_'.$centralize_array["origin"].'_event', $inserted_event_id, $centralize_array );
193 return array(
194 'status' => 'created',
195 'id' => $inserted_event_id
196 );
197 }
198
199 }else{
200 return array( 'status'=> 0, 'message'=> 'Something went wrong, please try again.' );
201 }
202 }
203
204 }
205