WC_Session_Handler::save_data()publicWC 1.0

Save data and delete guest session.

Метод класса: WC_Session_Handler{}

Хуков нет.

Возвращает

null. Ничего (null).

Использование

$WC_Session_Handler = new WC_Session_Handler();
$WC_Session_Handler->save_data( $old_session_key );
$old_session_key(int)
session ID before user logs in.

Код WC_Session_Handler::save_data() WC 8.7.0

public function save_data( $old_session_key = 0 ) {
	// Dirty if something changed - prevents saving nothing new.
	if ( $this->_dirty && $this->has_session() ) {
		global $wpdb;

		$wpdb->query(
			$wpdb->prepare(
				// phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared
				"INSERT INTO $this->_table (`session_key`, `session_value`, `session_expiry`) VALUES (%s, %s, %d)
 					ON DUPLICATE KEY UPDATE `session_value` = VALUES(`session_value`), `session_expiry` = VALUES(`session_expiry`)",
				$this->_customer_id,
				maybe_serialize( $this->_data ),
				$this->_session_expiration
			)
		);

		wp_cache_set( $this->get_cache_prefix() . $this->_customer_id, $this->_data, WC_SESSION_CACHE_GROUP, $this->_session_expiration - time() );
		$this->_dirty = false;
		if ( get_current_user_id() != $old_session_key && ! is_object( get_user_by( 'id', $old_session_key ) ) ) {
			$this->delete_session( $old_session_key );
		}
	}
}