📁 File Manager Pro
v10.0.3 | PHP: 8.2.31
Server: LiteSpeed
2026-07-03 05:18:19
📂
/ (Root)
/
home
/
orkouolp
/
web
/
orkofarms.com
/
wp-content
/
plugins
/
wcboost-wishlist
/
includes
📍 /home/orkouolp/web/orkofarms.com/wp-content/plugins/wcboost-wishlist/includes
🔄 Refresh
✏️
Editing: install.php
Writable
<?php /** * Install plugin * * @version 1.0.0 * * @package WCBoost\Wishlist */ namespace WCBoost\Wishlist; defined( 'ABSPATH' ) || exit; /** * Class \WCBoost\Wishlist\Install */ class Install { /** * Upgrades and callbacks to run per version * * @var array */ private static $upgrades = [ '1.1.6' => 'WCBoost\Wishlist\Upgrade::upgrade_116', ]; /** * Init hooks * * @return void */ public static function init() { add_action( 'switch_blog', [ __CLASS__, 'define_tables' ], 0 ); add_action( 'init', [ __CLASS__, 'check_version' ], 5 ); add_filter( 'plugin_row_meta', [ __CLASS__, 'plugin_row_meta' ], 10, 2 ); add_action( 'admin_notices', [ __CLASS__, 'deactivate_notice' ] ); } /** * Check the plugin version and run the installer * * @return void */ public static function check_version() { if ( version_compare( get_option( 'wcboost_wishlist_version' ), WCBOOST_WISHLIST_VERSION, '<' ) ) { self::install(); } } /** * Install plugin * * @return void */ public static function install() { if ( ! is_blog_installed() ) { return; } if ( 'yes' === get_transient( 'wcboost_wishlist_installing' ) ) { return; } set_transient( 'wcboost_wishlist_installing', 'yes', MINUTE_IN_SECONDS * 10 ); self::define_tables(); self::create_tables(); self::maybe_create_pages(); self::maybe_update(); self::update_version(); flush_rewrite_rules(); delete_transient( 'wcboost_wishlist_installing' ); do_action( 'wcboost_wishlist_installed' ); } /** * Register custom tables within $wpdb object. * * @since 1.1.0 */ public static function define_tables() { global $wpdb; // Wishlist table. if ( ! isset( $wpdb->wishlists ) ) { $wpdb->wishlists = $wpdb->prefix . 'wcboost_wishlists'; $wpdb->tables[] = 'wcboost_wishlists'; } // Wishlist items table. if ( ! isset( $wpdb->wishlist_items ) ) { $wpdb->wishlist_items = $wpdb->prefix . 'wcboost_wishlist_items'; $wpdb->tables[] = 'wcboost_wishlist_items'; } } /** * Set up the database tables which the plugin needs to function. * * @return void */ private static function create_tables() { global $wpdb; $wpdb->hide_errors(); require_once ABSPATH . 'wp-admin/includes/upgrade.php'; dbDelta( self::get_schema() ); } /** * Get table schema. * * @return string */ private static function get_schema() { global $wpdb; $collate = ''; if ( $wpdb->has_cap( 'collation' ) ) { $collate = $wpdb->get_charset_collate(); } $tables = " CREATE TABLE {$wpdb->wishlists} ( wishlist_id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, wishlist_title text NULL, wishlist_slug VARCHAR(200) NULL, wishlist_token VARCHAR(64) NOT NULL, description longtext NULL, menu_order INT(11) NOT NULL, status varchar(200) NOT NULL DEFAULT 'private', user_id BIGINT UNSIGNED NOT NULL, session_id VARCHAR(200) NULL, date_created datetime NOT NULL DEFAULT '0000-00-00 00:00:00', date_modified datetime NULL DEFAULT NULL, date_expires datetime NULL DEFAULT NULL, is_default tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (wishlist_id), KEY user_id (user_id), KEY session_id (session_id), UNIQUE KEY wishlist_token (wishlist_token) ) $collate; CREATE TABLE {$wpdb->wishlist_items} ( item_id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, status varchar(200) NOT NULL DEFAULT 'publish', product_id BIGINT UNSIGNED NOT NULL, variation_id BIGINT UNSIGNED NOT NULL DEFAULT '0', quantity INT(11) NOT NULL, wishlist_id BIGINT UNSIGNED NOT NULL, date_added datetime NOT NULL DEFAULT '0000-00-00 00:00:00', date_expires datetime NULL DEFAULT NULL, PRIMARY KEY (item_id), KEY product_id (product_id), KEY wishlist_id (wishlist_id) ) $collate; "; return $tables; } /** * Create pages on installation. */ public static function maybe_create_pages() { if ( empty( get_option( 'wcboost_wishlist_version' ) ) ) { self::create_pages(); } } /** * Create pages that the plugin relies on * * @return void */ public static function create_pages() { if ( ! function_exists( 'wc_create_page' ) && defined( 'WC_PLUGIN_FILE' ) ) { include_once dirname( WC_PLUGIN_FILE ) . '/includes/admin/wc-admin-functions.php'; } wc_create_page( esc_sql( _x( 'wishlist', 'Page slug', 'wcboost-wishlist' ) ), 'wcboost_wishlist_page_id', _x( 'Wishlist', 'Page title', 'wcboost-wishlist' ), '<!-- wp:shortcode -->[wcboost_wishlist]<!-- /wp:shortcode -->' ); } /** * Check and run update callbacks * * @since 1.1.6 */ public static function maybe_update() { require_once __DIR__ . '/upgrade.php'; $db_version = get_option( 'wcboost_wishlist_version' ); foreach ( self::$upgrades as $version => $callback ) { if ( version_compare( $db_version, $version, '>=' ) ) { continue; } if ( is_callable( $callback ) ) { call_user_func( $callback ); } } } /** * Update plugin version to current */ public static function update_version() { update_option( 'wcboost_wishlist_version', WCBOOST_WISHLIST_VERSION ); } /** * Show row meta on the plugin screen. * * @param mixed $links Plugin Row Meta. * @param mixed $file Plugin Base file. * * @return array */ public static function plugin_row_meta( $links, $file ) { if ( plugin_basename( WCBOOST_WISHLIST_FILE ) !== $file ) { return $links; } $row_meta = [ 'docs' => '<a href="https://wcboost.com/docs-category/wcboost-wishlists/?utm_source=docs-link&utm_campaign=wp-dash&utm_medium=plugin-meta" aria-label="' . esc_attr__( 'View wishlist documentation', 'wcboost-wishlist' ) . '">' . esc_html__( 'Docs', 'wcboost-wishlist' ) . '</a>', 'support' => '<a href="https://wordpress.org/support/plugin/wcboost-wishlist/" aria-label="' . esc_attr__( 'Visit community forums', 'wcboost-wishlist' ) . '">' . esc_html__( 'Community support', 'wcboost-wishlist' ) . '</a>', ]; return array_merge( $links, $row_meta ); } /** * The admin notice that inform the free version of plugin has been automatically deactivated. * * @since 1.0.11 * * @return void */ public static function deactivate_notice() { if ( ! current_user_can( 'manage_woocommerce' ) ) { return; } $auto_deactivated = get_transient( 'wcboost_wishlist_auto_deactivate_free_version' ); if ( ! $auto_deactivated ) { return; } ?> <div class="notice is-dismissible"> <p><?php esc_html_e( 'WCBoost - Wishlist (Free) has been automatically deactivated as you now have the Pro version installed.', 'wcboost-wishlist' ); ?></p> </div> <?php delete_transient( 'wcboost_wishlist_auto_deactivate_free_version' ); } }
💾 Save Changes
❌ Cancel