PluginProbe ʕ •ᴥ•ʔ
WP All Import – Drag & Drop Import for CSV, XML, Excel & Google Sheets / 3.3.2
WP All Import – Drag & Drop Import for CSV, XML, Excel & Google Sheets v3.3.2
3.9.5 3.9.6 4.0.0 4.0.1 4.1.0 trunk 2.12 2.13 2.14 3.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.2.0 3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9 3.3.0 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 3.3.7 3.3.8 3.3.9 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.4.5 3.4.6 3.4.7 3.4.8 3.4.9 3.5.0 3.5.1 3.5.2 3.5.3 3.5.4 3.5.5 3.5.6 3.5.7 3.5.8 3.5.9 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.6.5 3.6.6 3.6.7 3.6.8 3.6.9 3.7.0 3.7.1 3.7.2 3.7.3 3.7.3-beta-1.0 3.7.4 3.7.4-beta-1.0 3.7.5 3.7.6 3.7.7 3.7.8 3.7.9 3.8.0 3.9.0 3.9.1 3.9.2 3.9.3 3.9.4
wp-all-import / classes / handler.php
wp-all-import / classes Last commit date
PHPExcel 10 years ago PHPExcel.php 10 years ago api.php 10 years ago arraytoxml.php 10 years ago chunk.php 10 years ago config.php 10 years ago download.php 10 years ago handler.php 10 years ago helper.php 10 years ago input.php 10 years ago render.php 10 years ago session.php 10 years ago upload.php 10 years ago
handler.php
144 lines
1 <?php
2
3 class PMXI_Handler extends PMXI_Session {
4
5 /** cookie name */
6 private $_cookie;
7
8 /** session due to expire timestamp */
9 private $_session_expiring;
10
11 /** session expiration timestamp */
12 private $_session_expiration;
13
14 /** Bool based on whether a cookie exists **/
15 private $_has_cookie = false;
16
17 /**
18 * Constructor for the session class.
19 *
20 * @access public
21 * @return void
22 */
23 public function __construct() {
24
25 $this->set_session_expiration();
26
27 $this->_import_id = $this->generate_import_id();
28
29 $this->_data = $this->get_session_data();
30
31 //add_action( 'shutdown', array( $this, 'save_data' ), 20 );
32
33 }
34
35 /**
36 * Return true if the current user has an active session, i.e. a cookie to retrieve values
37 * @return boolean
38 */
39 public function has_session() {
40 return isset( $_COOKIE[ $this->_cookie ] ) || $this->_has_cookie || is_user_logged_in();
41 }
42
43 /**
44 * set_session_expiration function.
45 *
46 * @access public
47 * @return void
48 */
49 public function set_session_expiration() {
50 $this->_session_expiring = time() + intval( apply_filters( 'wpallimport_session_expiring', 60 * 60 * 47 ) ); // 47 Hours
51 $this->_session_expiration = time() + intval( apply_filters( 'wpallimport_session_expiration', 60 * 60 * 48 ) ); // 48 Hours
52 }
53
54 public function generate_import_id() {
55
56 $input = new PMXI_Input();
57 $import_id = $input->get('id', 'new');
58
59 return $import_id;
60
61 }
62
63 /**
64 * get_session_data function.
65 *
66 * @access public
67 * @return array
68 */
69 public function get_session_data() {
70 return (array) get_option( '_wpallimport_session_' . $this->_import_id . '_', array() );
71 }
72
73 /**
74 * save_data function.
75 *
76 * @access public
77 * @return void
78 */
79 public function save_data() {
80 // Dirty if something changed - prevents saving nothing new
81 if ( $this->_dirty && $this->has_session() ) {
82
83 $session_option = '_wpallimport_session_' . $this->_import_id . '_';
84 $session_expiry_option = '_wpallimport_session_expires_' . $this->_import_id . '_';
85
86 wp_cache_delete( 'notoptions', 'options' );
87 wp_cache_delete( $session_option, 'options' );
88 wp_cache_delete( $session_expiry_option, 'options' );
89
90 if ( false === get_option( $session_option ) ) {
91 add_option( $session_option, $this->_data, '', 'no' );
92 add_option( $session_expiry_option, $this->_session_expiration, '', 'no' );
93 } else {
94 update_option( $session_option, $this->_data );
95 }
96 }
97 }
98
99 public function convertData( $import_id ){
100
101 $this->_import_id = 'new';
102
103 $this->_data = $this->get_session_data();
104
105 $this->set_session_expiration();
106
107 $this->_import_id = $import_id;
108
109 $this->clean_session();
110
111 $this->_dirty = true;
112
113 $this->save_data();
114 }
115
116 public function clean_session( $import_id = 'new' ){
117
118 global $wpdb;
119
120 $now = time();
121 $expired_sessions = array();
122 $wpallimport_session_expires = $wpdb->get_results( $wpdb->prepare("SELECT option_name, option_value FROM $wpdb->options WHERE option_name LIKE %s", "_wpallimport_session_expires_" . $import_id . "_%") );
123
124 $expired_sessions[] = "_wpallimport_session_{$import_id}_"; // Session key
125
126 foreach ( $wpallimport_session_expires as $wpallimport_session_expire ) {
127 //if ( $now > intval( $wpallimport_session_expire->option_value ) ) {
128 //$session_id = substr( $wpallimport_session_expire->option_name, 29 );
129 $expired_sessions[] = $wpallimport_session_expire->option_name; // Expires key
130 //$expired_sessions[] = "_wpallimport_session_$session_id"; // Session key
131 //}
132 }
133
134 if ( ! empty( $expired_sessions ) ) {
135 $expired_sessions_chunked = array_chunk( $expired_sessions, 100 );
136
137 foreach ( $expired_sessions_chunked as $chunk ) {
138 $option_names = implode( "','", $chunk );
139 $wpdb->query( "DELETE FROM $wpdb->options WHERE option_name IN ('$option_names')" );
140 }
141 }
142
143 }
144 }