File "ActionScheduler_LoggerSchema.php"
Full Path: /home/warrior1/public_html/plugins/mailpoet/vendor/woocommerce/action-scheduler/classes/schema/ActionScheduler_LoggerSchema.php
File size: 1.8 KB
MIME-type: text/x-php
Charset: utf-8
<?php
if (!defined('ABSPATH')) exit;
class ActionScheduler_LoggerSchema extends ActionScheduler_Abstract_Schema {
const LOG_TABLE = 'actionscheduler_logs';
protected $schema_version = 3;
public function __construct() {
$this->tables = [
self::LOG_TABLE,
];
}
public function init() {
add_action( 'action_scheduler_before_schema_update', array( $this, 'update_schema_3_0' ), 10, 2 );
}
protected function get_table_definition( $table ) {
global $wpdb;
$table_name = $wpdb->$table;
$charset_collate = $wpdb->get_charset_collate();
switch ( $table ) {
case self::LOG_TABLE:
$default_date = ActionScheduler_StoreSchema::DEFAULT_DATE;
return "CREATE TABLE $table_name (
log_id bigint(20) unsigned NOT NULL auto_increment,
action_id bigint(20) unsigned NOT NULL,
message text NOT NULL,
log_date_gmt datetime NULL default '{$default_date}',
log_date_local datetime NULL default '{$default_date}',
PRIMARY KEY (log_id),
KEY action_id (action_id),
KEY log_date_gmt (log_date_gmt)
) $charset_collate";
default:
return '';
}
}
public function update_schema_3_0( $table, $db_version ) {
global $wpdb;
if ( 'actionscheduler_logs' !== $table || version_compare( $db_version, '3', '>=' ) ) {
return;
}
// phpcs:disable WordPress.DB.PreparedSQL.InterpolatedNotPrepared
$table_name = $wpdb->prefix . 'actionscheduler_logs';
$table_list = $wpdb->get_col( "SHOW TABLES LIKE '{$table_name}'" );
$default_date = ActionScheduler_StoreSchema::DEFAULT_DATE;
if ( ! empty( $table_list ) ) {
$query = "
ALTER TABLE {$table_name}
MODIFY COLUMN log_date_gmt datetime NULL default '{$default_date}',
MODIFY COLUMN log_date_local datetime NULL default '{$default_date}'
";
$wpdb->query( $query ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
}
// phpcs:enable WordPress.DB.PreparedSQL.InterpolatedNotPrepared
}
}