| Server IP : 172.67.147.195 / Your IP : 216.73.216.142 Web Server : Apache/2 System : Linux hosting8537.lvs 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 User : mienphi ( 1014) PHP Version : 8.2.14 Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /home/mienphi/public_html/wp-content/plugins/woocommerce/src/Blocks/Domain/ |
Upload File : |
<?php
namespace Automattic\WooCommerce\Blocks\Domain;
use Automattic\WooCommerce\Blocks\Options;
use Automattic\WooCommerce\Blocks\Domain\Services\FeatureGating;
/**
* Main package class.
*
* Returns information about the package and handles init.
*
* @since 2.5.0
*/
class Package {
/**
* Holds the current version of the blocks plugin.
*
* @var string
*/
private $version;
/**
* Holds the main path to the blocks plugin directory.
*
* @var string
*/
private $path;
/**
* Holds locally the plugin_dir_url to avoid recomputing it.
*
* @var string
*/
private $plugin_dir_url;
/**
* Holds the feature gating class instance.
*
* @var FeatureGating
*/
private $feature_gating;
/**
* Constructor
*
* @param string $version Version of the plugin.
* @param string $plugin_path Path to the main plugin file.
* @param FeatureGating $deprecated Deprecated Feature gating class.
*/
public function __construct( $version, $plugin_path, $deprecated = null ) {
if ( null !== $deprecated ) {
wc_deprecated_argument( 'FeatureGating', '9.6', 'FeatureGating class is deprecated, please use wp_get_environment_type() instead.' );
$this->feature_gating = new FeatureGating();
}
$this->version = $version;
$this->path = $plugin_path;
}
/**
* Returns the version of WooCommerce Blocks.
*
* Note: since Blocks was merged into WooCommerce Core, the version of
* WC Blocks doesn't update anymore. Use
* `Constants::get_constant( 'WC_VERSION' )` when possible to get the
* WooCommerce Core version.
*
* @return string
*/
public function get_version() {
return $this->version;
}
/**
* Returns the version of WooCommerce Blocks stored in the database.
*
* @return string
*/
public function get_version_stored_on_db() {
return get_option( Options::WC_BLOCK_VERSION, '' );
}
/**
* Sets the version of WooCommerce Blocks in the database.
* This is useful during the first installation or after the upgrade process.
*/
public function set_version_stored_on_db() {
update_option( Options::WC_BLOCK_VERSION, $this->get_version() );
}
/**
* Returns the path to the plugin directory.
*
* @param string $relative_path If provided, the relative path will be
* appended to the plugin path.
*
* @return string
*/
public function get_path( $relative_path = '' ) {
return trailingslashit( $this->path ) . $relative_path;
}
/**
* Returns the url to the blocks plugin directory.
*
* @param string $relative_url If provided, the relative url will be
* appended to the plugin url.
*
* @return string
*/
public function get_url( $relative_url = '' ) {
if ( ! $this->plugin_dir_url ) {
// Append index.php so WP does not return the parent directory.
$this->plugin_dir_url = plugin_dir_url( $this->path . '/index.php' );
}
return $this->plugin_dir_url . $relative_url;
}
/**
* Returns an instance of the FeatureGating class.
*
* @return FeatureGating
*/
public function feature() {
return $this->feature_gating;
}
}