cmindsProPackage = $cmindsProPackage; $this->url = str_replace( array( 'http://', 'https://', 'www.' ), array( '', '', '' ), get_bloginfo( 'wpurl' ) ); $this->slug = basename( $cmindsProPackage->getOption( 'plugin-file' ), '.php' ); $this->plugin = $this->name = $cmindsProPackage->getOption( 'plugin-basename' ); $this->version = $cmindsProPackage->getOption( 'plugin-version' ); $this->pluginMenu = $cmindsProPackage->getOption( 'plugin-menu-item' ); $this->pluginMenuPage = $this->getPageUrl( 'licensing' ); $this->pluginUpdateMenuPage = $this->getPageUrl( 'update' ); $this->pluginFile = $cmindsProPackage->getOption( 'plugin-file' ); $this->changelogUrl = $cmindsProPackage->getOption( 'plugin-changelog-url' ); $this->pluginName = $cmindsProPackage->getOption( 'plugin-name' ); $this->pluginSlug = $cmindsProPackage->getOption( 'plugin-slug' ) ? $cmindsProPackage->getOption( 'plugin-slug' ) : self::camelCaseToHypenSeparated( $this->pluginName ); $this->pluginShortSlug = $cmindsProPackage->getOption( 'plugin-short-slug' ); $this->optionGroup = $this->pluginMenu; //'cminds-' . $this->pluginSlug . '-license'; $this->optionSSLVersion = 'cminds-' . $this->pluginSlug . '-ssl'; $this->optionLicenseKey = 'cminds-' . $this->pluginSlug . '-license-key'; $this->optionLicenseActivateKey = 'cminds-' . $this->pluginSlug . '-license-activate'; $this->optionLicenseDeactivateKey = 'cminds-' . $this->pluginSlug . '-license-deactivate'; $this->optionLicenseData = 'cminds-' . $this->pluginSlug . '-license-data'; $this->optionLicenseStatus = 'cminds-' . $this->pluginSlug . '-license-status'; $this->optionCountLicenseActivations = 'cminds-' . $this->pluginSlug . '-license-activation-count'; $this->optionCountLicenseMaxActivations = 'cminds-' . $this->pluginSlug . '-license-max-ac'; $this->optionUpdateLastCheck = 'cminds-' . $this->pluginSlug . '-last-update-check'; $this->optionUpdateInfoArr = 'cminds-' . $this->pluginSlug . '-last-update-info'; $this->license = trim( get_option( $this->optionLicenseKey, '' ) ); $this->licenseStatus = trim( get_option( $this->optionLicenseStatus, '' ) ); $this->licenseData = get_option( $this->optionLicenseData ); $this->itemName = $cmindsProPackage->getOption( 'plugin-license-name' ); $this->validItemNames = array( $this->itemName ); $licensingAliases = $cmindsProPackage->getOption( 'plugin-licensing-aliases' ); if ( !empty( $licensingAliases ) && is_array( $licensingAliases ) ) { $this->validItemNames = array_merge( $this->validItemNames, $licensingAliases ); } /* * Remove empty */ $this->validItemNames = array_filter( $this->validItemNames ); $this->baseParams = array( 'item_name' => urlencode( $this->itemName ), 'url' => $this->url, 'license' => $this->license, 'slug' => $this->slug, ); self::$instances[ $this->optionGroup ] = $this; add_action( 'admin_init', array( $this, 'register_license_option' ) ); add_action( 'admin_init', array( $this, 'dismiss_notice' ) ); if ( $cmindsProPackage->getOption( 'plugin-is-pro' ) ) { add_action( 'admin_init', array( $this, 'activate_license' ) ); add_action( 'admin_init', array( $this, 'deactivate_license' ) ); add_action( 'admin_init', array( $this, 'check_license' ) ); add_action( 'admin_notices', array( $this, 'showMessage' ) ); } add_action( 'update_option_' . $this->optionLicenseKey, array( $this, 'after_new_license_key' ), 10, 2 ); if ( $cmindsProPackage->getOption( 'plugin-is-pro' ) ) { add_action( 'upgrader_pre_download', array( $this, 'changeSSLVersion' ) ); add_filter( 'pre_set_site_transient_update_plugins', array( $this, 'check_update' ) ); add_filter( 'plugins_api', array( $this, 'plugins_api_filter' ), 10, 3 ); remove_action( 'after_plugin_row_' . $this->name, 'wp_plugin_update_row', 10, 2 ); add_action( 'after_plugin_row_' . $this->name, array( $this, 'show_update_notification' ), 10, 2 ); add_action( 'in_plugin_update_message-' . $this->name, array( $this, 'changelog' ), null, 2 ); } } /* * We need the same "hack" as for the licensing activation for automatic updates */ public function changeSSLVersion($reply) { add_action( 'http_api_curl', array( $this, 'setSSLVersion' ), 10, 3 ); return $reply; } public function changelog( $pluginData, $newPluginData ) { require_once( ABSPATH . 'wp-admin/includes/plugin-install.php' ); $plugin = plugins_api( 'plugin_information', array( 'slug' => $newPluginData->slug ) ); if ( !$plugin || is_wp_error( $plugin ) ) { return; } if ( !empty( $plugin->sections[ 'changelog' ] ) ) { $changes = $plugin->sections[ 'changelog' ]; $pos = strpos( $changes, '

' . preg_replace( '/[^\d\.]/', '', $pluginData[ 'Version' ] ) ); if ( $pos !== false ) { $changes = trim( substr( $changes, 0, $pos ) ); } $replace = array( '