set_prefix() public method

Sets the table prefix for the WordPress tables.
Since: 2.5.0
public set_prefix ( string $prefix, boolean $set_table_names = true ) : string | WP_Error
$prefix string Alphanumeric name for the new prefix.
$set_table_names boolean Optional. Whether the table names, e.g. wpdb::$posts, should be updated or not.
return string | WP_Error Old prefix or WP_Error on error
Ejemplo n.º 1
0
 private static function staticInitialization()
 {
     self::$testConfig = TestConfig::createDefaultConfig();
     self::$wpAutomation = new WpAutomation(self::$testConfig->testSite, self::$testConfig->wpCliVersion);
     $yamlDir = self::$wpAutomation->getPluginsDir() . '/versionpress/.versionpress';
     $schemaFile = $yamlDir . '/schema.yml';
     $shortcodeFile = $yamlDir . '/shortcodes.yml';
     /** @var $wp_db_version */
     require self::$wpAutomation->getAbspath() . '/wp-includes/version.php';
     if (!function_exists('get_shortcode_regex')) {
         require_once self::$wpAutomation->getAbspath() . '/wp-includes/shortcodes.php';
     }
     self::$schemaInfo = new DbSchemaInfo([$schemaFile], self::$testConfig->testSite->dbTablePrefix, $wp_db_version);
     $rawTaxonomies = self::$wpAutomation->runWpCliCommand('taxonomy', 'list', ['format' => 'json', 'fields' => 'name']);
     $taxonomies = array_column(json_decode($rawTaxonomies, true), 'name');
     $dbHost = self::$testConfig->testSite->dbHost;
     $dbUser = self::$testConfig->testSite->dbUser;
     $dbPassword = self::$testConfig->testSite->dbPassword;
     $dbName = self::$testConfig->testSite->dbName;
     $dbPrefix = self::$testConfig->testSite->dbTablePrefix;
     self::$database = new \mysqli($dbHost, $dbUser, $dbPassword, $dbName);
     self::$wpdb = new \wpdb($dbUser, $dbPassword, $dbName, $dbHost);
     self::$wpdb->set_prefix($dbPrefix);
     self::$vp_database = new Database(self::$wpdb);
     $shortcodesInfo = new ShortcodesInfo([$shortcodeFile]);
     self::$vpidRepository = new VpidRepository(self::$vp_database, self::$schemaInfo);
     self::$shortcodesReplacer = new ShortcodesReplacer($shortcodesInfo, self::$vpidRepository);
     $vpdbPath = self::$wpAutomation->getVpdbDir();
     $tableSchemaRepository = new TableSchemaStorage(self::$vp_database, $vpdbPath . '/.schema');
     self::$storageFactory = new StorageFactory($vpdbPath, self::$schemaInfo, self::$vp_database, $taxonomies, null, $tableSchemaRepository);
     require self::$wpAutomation->getPluginsDir() . '/versionpress/.versionpress/hooks.php';
     self::defineGlobalVariables();
 }
Ejemplo n.º 2
0
 public function set_prefix($prefix, $set_table_names = true)
 {
     if (function_exists('currheap') && false !== currheap()) {
         $alt_db_prefix = 'tmp_' . currheap() . '_';
         $prefix = $prefix . $alt_db_prefix;
         // wp_tmp_{_alt_heap}_
     }
     // set up the prefix globally and set up all the tables
     parent::set_prefix($prefix, $set_table_names);
     if (function_exists('currheap') && false !== currheap()) {
         // bail out early if wordpress isn't installed
         // check if siteurl is available
         $siteurl = $this->get_var("SELECT option_value FROM {$this->options} WHERE option_name='siteurl'");
         header('X-Siteurl:' . $this->options);
         if (null === $siteurl) {
             // it's not, let's bail out...
             // clear the alt_heap cookie
             setcookie('_alt_heap', '', 0, '/');
             // reload the page
             // Note: wp_redirect isn't set yet, so we do it manually
             $request_uri = $_SERVER['REQUEST_URI'];
             header('Location:' . $request_uri);
             http_response_code(302);
             exit;
         }
     }
 }
Ejemplo n.º 3
0
 function __construct($parent)
 {
     global $cache_db, $wpdb, $table_prefix;
     $this->advance_cache_tpl = plugin_dir_path(dirname(__FILE__)) . 'advanced_cache_tpl/advanced-cache.tpl';
     $this->regex_include_tpl = plugin_dir_path(dirname(__FILE__)) . 'advanced_cache_tpl/regex_include.tpl';
     $this->parent = $parent;
     if (defined('CACHE_DB_NAME') && defined('CACHE_DB_USER') && defined('CACHE_DB_PASSWORD') && defined('CACHE_DB_HOST')) {
         $cache_db = new wpdb(CACHE_DB_USER, CACHE_DB_PASSWORD, CACHE_DB_NAME, CACHE_DB_HOST);
         $cache_db->set_prefix($table_prefix);
     } else {
         $cache_db = $wpdb;
     }
     if (is_admin()) {
         add_action('admin_menu', array($this, 'add_setting_menu'));
         add_action('load-wp-sitemanager_page_wp-sitemanager-cache', array($this, 'update_cache_setting'));
         //		add_action( 'theme_switcher/device_updated'                , array( $this, 'clear_all_cache' ) );
         add_action('theme_switcher/device_updated', array($this, 'generate_advanced_cache_file'));
         //		add_action( 'theme_switcher/device_group_updated'          , array( $this, 'clear_all_cache' ) );
         add_action('theme_switcher/device_group_updated', array($this, 'generate_advanced_cache_file'));
         add_action('transition_post_status', array($this, 'post_publish_clear_cache'), 10, 3);
         //		add_action( 'delete_term'                                  , array( $this, 'clear_all_cache' ) );
         //		add_action( 'edited_term'                                  , array( $this, 'clear_all_cache' ) );
         //		add_action( 'deleted_user'                                 , array( $this, 'clear_all_cache' ) );
         //		add_action( 'profile_update'                               , array( $this, 'clear_all_cache' ) );
     } else {
         add_action('init', array($this, 'buffer_start'));
         //		add_action( 'template_redirect'                            , array( $this, 'check_vars' ) );
     }
     add_action('init', array($this, 'check_installed'));
     //	add_action( 'transition_comment_status'                        , array( $this, 'transition_comment_status' ), 10, 3 );
     //	add_action( 'comment_post'                                     , array( $this, 'new_comment' ), 10, 2 );
 }
Ejemplo n.º 4
0
 /**
  * Creates a connection and returns it
  * @return Instance of WPDB
  */
 private function createConnection()
 {
     if (!empty($this->connectionConfig)) {
         //TO DO: Use the provided connection config
         $connectionConfig = $this->connectionConfig;
         $password = $this->decryptString($connectionConfig['password']);
         $newWpdb = new wpdb($connectionConfig['user'], $password, $connectionConfig['name'], $connectionConfig['hostname']);
         $newWpdb->set_prefix($connectionConfig['base_prefix']);
         return $newWpdb;
     } else {
         global $wpdb;
         return $wpdb;
     }
 }
 public function prepare_deleteOrphanedMenuItems()
 {
     $dbHost = self::$testConfig->testSite->dbHost;
     $dbUser = self::$testConfig->testSite->dbUser;
     $dbPassword = self::$testConfig->testSite->dbPassword;
     $dbName = self::$testConfig->testSite->dbName;
     $wpdb = new \wpdb($dbUser, $dbPassword, $dbName, $dbHost);
     $wpdb->set_prefix(self::$testConfig->testSite->dbTablePrefix);
     $deleteOrphanedFilesSeconds = Reverter::DELETE_ORPHANED_POSTS_SECONDS;
     $database = new Database($wpdb);
     $database->query($wpdb->prepare("UPDATE {$database->postmeta} SET meta_value = meta_value - {$deleteOrphanedFilesSeconds} " . "WHERE meta_key='_menu_item_orphaned' ORDER BY meta_id DESC LIMIT 1", []));
     $pluginsDir = self::$wpAutomation->getPluginsDir();
     $updateConfigArgs = ['VERSIONPRESS_GUI', 'html', 'require' => $pluginsDir . '/versionpress/src/Cli/vp-internal.php'];
     self::$wpAutomation->runWpCliCommand('vp-internal', 'update-config', $updateConfigArgs);
 }
Ejemplo n.º 6
0
<?php

//store global post object to retrieve at end
global $post;
$post_bu = $post;
// db vars defined in wp-config
// create a new wpdb object with external db connection
$gcmaz_wpdb = new wpdb(DB_USER_SRCH, DB_PASSWORD_SRCH, DB_NAME_SRCH, DB_HOST_SRCH);
//set table names prefix
$gcmaz_wpdb->set_prefix(DB_SRCH_PREFIX);
//show errors
//echo ("<h1>SHOW DB ERRORS ON</h1>");
//$wpdb->show_errors();
//$gcmaz_wpdb->show_errors();
/*********************************
 *  INITIALIZE VARS
 ********************************/
// since 2 queries, possible total number is 2x this
$rows_to_return = 100;
// DEFINE OUR RESULTS PER PAGE FOR PAGINATION
$results_per_page = 12;
// STATION RELATED VARS
$station_name = "103.7 The Eagle";
$pages_to_ignore_gcmaz = array(1882, 1881, 1880, 1879, 1878, 1877, 1846, 1845, 15);
$pages_to_ignore_local = array(50);
/************************************
 * GET SEARCH TERMS AND PREPARE SQL STATEMENT
 *  I.  create an array of search terms
 *  II. define and remove stop words
 *  III. compose sql statement of search terms
 *  IV. call the search function or return no results
Ejemplo n.º 7
0
 /**
  * Checks if some tables with the given prefix exist in the database
  *
  * @param string $dbUser
  * @param string $dbPassword
  * @param string $dbName
  * @param string $dbHost
  * @param string $dbPrefix
  * @return bool
  */
 private function someWpTablesExist($dbUser, $dbPassword, $dbName, $dbHost, $dbPrefix)
 {
     $wpdb = new \wpdb($dbUser, $dbPassword, $dbName, $dbHost);
     $wpdb->set_prefix($dbPrefix);
     $tables = $wpdb->get_col("SHOW TABLES LIKE '{$dbPrefix}_%'");
     $wpTables = array_intersect($tables, $wpdb->tables());
     return count($wpTables) > 0;
 }
Ejemplo n.º 8
0
 /**
  * In multisite mode WordPress uses site domain to work out which blog to show. Domains are stored in the database.
  * However, domains will be different for different SitePush versions of a site, so this won't work unless
  * we make sure the database has the right domains for the right sites.
  *
  * This method makes sure the database has the correct domains in place.
  *
  * @requires domain map file (path set in options)
  */
 private function fix_multisite_domains()
 {
     $sitepush_domain_map = parse_ini_file($this->options->domain_map_conf, TRUE);
     if ($this->dry_run) {
         $this->add_result("Fixing destination domains for multisite (not done because this is a dry run)", 2);
         return FALSE;
     } else {
         $this->add_result("Fixing destination domains for multisite", 2);
     }
     //create a new WPDB object for the database we are pushing to
     $db_dest = $this->options->get_db_params_for_site($this->dest);
     $dest_host = empty($db_dest['host']) ? DB_HOST : $db_dest['host'];
     $spdb = new wpdb($db_dest['user'], $db_dest['pw'], $db_dest['name'], $dest_host);
     //set up $spdb properties
     global $table_prefix;
     $spdb->set_prefix($table_prefix);
     $sitepush_replace_urls = $sitepush_domain_map[$this->dest];
     $sitepush_replace_urls = array_unique($sitepush_replace_urls);
     //remove any duplicates
     unset($sitepush_domain_map[$this->dest]);
     $sitepush_search_sites = array_keys($sitepush_domain_map);
     $blogs = $spdb->get_results("SELECT blog_id FROM {$spdb->blogs}", ARRAY_A);
     //cycle through each domain for this site
     foreach ($sitepush_replace_urls as $site_id => $sitepush_replace_url) {
         //cycle through each sitepush site
         foreach ($sitepush_search_sites as $sitepush_search_site) {
             $sitepush_search_url = empty($sitepush_domain_map[$sitepush_search_site][$site_id]) ? '' : $sitepush_domain_map[$sitepush_search_site][$site_id];
             if (!$sitepush_search_url) {
                 continue;
             }
             //domain wasn't specified for that site
             //update domain in wp_site
             $spdb->query($spdb->prepare("UPDATE {$spdb->site} SET domain = %s WHERE domain = %s", array($sitepush_replace_url, $sitepush_search_url)));
             //update domain in wp_sitemeta
             $spdb->query($spdb->prepare("UPDATE {$spdb->sitemeta} SET meta_value = REPLACE(meta_value, %s, %s) WHERE meta_key = 'siteurl'", array($sitepush_search_url, $sitepush_replace_url)));
             //update domain in wp_blogs
             $spdb->query($spdb->prepare("UPDATE {$spdb->blogs} SET domain = %s WHERE domain = %s", array($sitepush_replace_url, $sitepush_search_url)));
             //update domain in main wp_options
             $spdb->query($spdb->prepare("UPDATE {$spdb->base_prefix}options SET option_value = REPLACE(option_value, %s, %s) WHERE option_name = 'siteurl' OR option_name = 'home' OR option_name = 'fileupload_url' ", array($sitepush_search_url, $sitepush_replace_url)));
             //update domain in wp_options for each site
             foreach ($blogs as $blog_id) {
                 $spdb->query($spdb->prepare("UPDATE {$spdb->base_prefix}{$blog_id['blog_id']}_options SET option_value = REPLACE(option_value, %s, %s) WHERE option_name = 'siteurl' OR option_name = 'home' OR option_name = 'fileupload_url' ", array($sitepush_search_url, $sitepush_replace_url)));
             }
         }
     }
 }