PluginProbe ʕ •ᴥ•ʔ
WP All Export – Drag & Drop Export to Any Custom CSV, XML & Excel / 1.0.5
WP All Export – Drag & Drop Export to Any Custom CSV, XML & Excel v1.0.5
trunk 0.9.0 0.9.1 1.0.0 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.1.2 1.1.3 1.1.4 1.1.5 1.2.0 1.2.1 1.2.10 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 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.10 1.4.11 1.4.12 1.4.13 1.4.14 1.4.15 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
wp-all-export / classes / handler.php
wp-all-export / classes Last commit date
XMLWriter.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 session.php 10 years ago wpallimport.php 10 years ago zip.php 10 years ago
handler.php
134 lines
1 <?php
2
3 class PMXE_Handler extends PMXE_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
26 $this->set_session_expiration();
27
28 $this->_import_id = $this->generate_import_id();
29
30 $this->_data = $this->get_session_data();
31
32 }
33
34 /**
35 * Return true if the current user has an active session, i.e. a cookie to retrieve values
36 * @return boolean
37 */
38 public function has_session()
39 {
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 {
51 $this->_session_expiring = time() + intval( apply_filters( 'wpallexport_session_expiring', 60 * 60 * 47 ) ); // 47 Hours
52 $this->_session_expiration = time() + intval( apply_filters( 'wpallexport_session_expiration', 60 * 60 * 48 ) ); // 48 Hours
53 }
54
55 public function generate_import_id()
56 {
57 $input = new PMXE_Input();
58 $import_id = $input->get('id', 'new');
59
60 return $import_id;
61 }
62
63 /**
64 * get_session_data function.
65 *
66 * @access public
67 * @return array
68 */
69 public function get_session_data()
70 {
71 global $wpdb;
72
73 $session = $wpdb->get_row( $wpdb->prepare("SELECT option_name, option_value FROM $wpdb->options WHERE option_name = %s", '_wpallexport_session_' . $this->_import_id . '_'), ARRAY_A );
74
75 return empty($session) ? array() : maybe_unserialize($session['option_value']);
76 }
77
78 /**
79 * get_session_data function.
80 *
81 * @access public
82 * @return array
83 */
84 public function get_clear_session_data()
85 {
86 $this->_data = $this->get_session_data();
87 $clear_data = array();
88 foreach ($this->_data as $key => $value) {
89 $ckey = sanitize_key( $key );
90 $clear_data[ $ckey ] = maybe_unserialize( $value );
91 }
92
93 return $clear_data;
94 }
95
96 /**
97 * save_data function.
98 *
99 * @access public
100 * @return void
101 */
102 public function save_data()
103 {
104 // Dirty if something changed - prevents saving nothing new
105 if ( $this->_dirty && $this->has_session() )
106 {
107 $session_option = '_wpallexport_session_' . $this->_import_id . '_';
108 $session_expiry_option = '_wpallexport_session_expires_' . $this->_import_id . '_';
109
110 global $wpdb;
111
112 $session = $wpdb->get_row( $wpdb->prepare("SELECT option_name, option_value FROM $wpdb->options WHERE option_name = %s", $session_option), ARRAY_A );
113
114 if ( empty($session) )
115 {
116 $wpdb->query($wpdb->prepare("INSERT INTO `$wpdb->options` (`option_name`, `option_value`, `autoload`) VALUES (%s, %s, 'no')", $session_option, serialize($this->_data)));
117 $wpdb->query($wpdb->prepare("INSERT INTO `$wpdb->options` (`option_name`, `option_value`, `autoload`) VALUES (%s, %s, 'no')", $session_expiry_option, $this->_session_expiration));
118 // add_option( $session_option, $this->_data, '', 'no' );
119 // add_option( $session_expiry_option, $this->_session_expiration, '', 'no' );
120 } else {
121 // update_option( $session_option, $this->_data );
122 $wpdb->query($wpdb->prepare("UPDATE `$wpdb->options` SET `option_value` = %s WHERE `option_name` = %s", serialize($this->_data), $session_option));
123 }
124 }
125 }
126
127 public function clean_session( $import_id = 'new' )
128 {
129 global $wpdb;
130
131 $wpdb->query( $wpdb->prepare("DELETE FROM $wpdb->options WHERE option_name = %s", '_wpallexport_session_' . $import_id . '_') );
132 $wpdb->query( $wpdb->prepare("DELETE FROM $wpdb->options WHERE option_name = %s", '_wpallexport_session_expires_' . $import_id . '_') );
133 }
134 }