40 lines
1.3 KiB
PHP
40 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace FluentForm\App\Modules\Payments\Migrations;
|
|
|
|
if (!defined('ABSPATH')) {
|
|
exit; // Exit if accessed directly.
|
|
}
|
|
|
|
class Migration
|
|
{
|
|
public static function run($network_wide = false)
|
|
{
|
|
global $wpdb;
|
|
if ($network_wide) {
|
|
// Retrieve all site IDs from this network (WordPress >= 4.6 provides easy to use functions for that).
|
|
if (function_exists('get_sites') && function_exists('get_current_network_id')) {
|
|
$site_ids = get_sites(array('fields' => 'ids', 'network_id' => get_current_network_id()));
|
|
} else {
|
|
// phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching -- Multisite migration, direct query needed
|
|
$site_ids = $wpdb->get_col("SELECT blog_id FROM $wpdb->blogs WHERE site_id = $wpdb->siteid;");
|
|
}
|
|
// Install the plugin for all these sites.
|
|
foreach ($site_ids as $site_id) {
|
|
switch_to_blog($site_id);
|
|
self::migrate();
|
|
restore_current_blog();
|
|
}
|
|
} else {
|
|
self::migrate();
|
|
}
|
|
}
|
|
|
|
public static function migrate()
|
|
{
|
|
OrderItems::migrate();
|
|
Transactions::migrate();
|
|
OrderSubscriptions::migrate();
|
|
}
|
|
}
|