90 lines
2.4 KiB
PHP
90 lines
2.4 KiB
PHP
<?php
|
|
/**
|
|
* Entity: Options.
|
|
*
|
|
* User Options table.
|
|
*
|
|
* Important: This table is no longer in use, and will be removed if it is presented.
|
|
* That code is for migration purposes only.
|
|
* At some point it was dropped, but in order to keep backwards compatibility, its content needs to be transferred to the main options table.
|
|
*
|
|
* @package wsal
|
|
*/
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace WSAL\Entities;
|
|
|
|
use WSAL\Helpers\WP_Helper;
|
|
|
|
// Exit if accessed directly.
|
|
if ( ! defined( 'ABSPATH' ) ) {
|
|
exit;
|
|
}
|
|
|
|
if ( ! class_exists( '\WSAL\Entities\Options_Entity' ) ) {
|
|
/**
|
|
* Responsible for the options (legacy).
|
|
*/
|
|
class Options_Entity extends Abstract_Entity {
|
|
/**
|
|
* Contains the table name.
|
|
*
|
|
* @var string
|
|
*/
|
|
protected static $table = 'wsal_options';
|
|
|
|
/**
|
|
* Transfers all the options from the legacy options table to the global WP options.
|
|
*
|
|
* @return void
|
|
*
|
|
* @since 4.4.2.1
|
|
*/
|
|
public static function transfer_options() {
|
|
global $wpdb;
|
|
|
|
$results = $wpdb->get_results('SELECT * FROM ' . self::get_table_name(), ARRAY_A); // phpcs:ignore
|
|
|
|
foreach ( $results as $data ) {
|
|
$option_name = $data['option_name'];
|
|
$option_name = \str_replace( 'wsal-', 'wsal_', $option_name );
|
|
$option_exists = WP_Helper::get_global_option( $option_name, false );
|
|
if ( false === $option_exists ) {
|
|
WP_Helper::set_global_option( $option_name, \maybe_unserialize( $data['option_value'] ) );
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Drop the table from the DB.
|
|
* The method from the abstract class is not used because that table must be in the local database, so we just need to user WP_DB.
|
|
*
|
|
* @param \WPDB $connection - \WPDB connection to be used for name extraction. Not in use here just for compatibility with the parent class.
|
|
*
|
|
* @since 4.4.2.1
|
|
*/
|
|
public static function drop_table( $connection = null ) {
|
|
global $wpdb;
|
|
|
|
$table_name = self::get_table_name();
|
|
|
|
$wpdb->query('DROP TABLE IF EXISTS ' . $table_name); // phpcs:ignore
|
|
}
|
|
|
|
/**
|
|
* Returns the the table name
|
|
* The method from the abstract class is not used because that table must be in the local database, so we just need to user WP_DB.
|
|
*
|
|
* @param \WPDB $connection - \WPDB connection to be used for name extraction. Not in use here just for compatibility with the parent class.
|
|
*
|
|
* @since 4.4.2.1
|
|
*/
|
|
public static function get_table_name( $connection = null ): string {
|
|
global $wpdb;
|
|
|
|
return $wpdb->prefix . static::$table;
|
|
}
|
|
}
|
|
}
|