2018-02-13 19:03:53 +00:00
< ? php
/**
2018-12-04 20:54:14 +00:00
* Plugin Name : WooCommerce Blocks
2018-02-13 19:03:53 +00:00
* Plugin URI : https :// github . com / woocommerce / woocommerce - gutenberg - products - block
2018-12-04 20:54:14 +00:00
* Description : WooCommerce blocks for the Gutenberg editor .
2019-11-19 17:20:22 +00:00
* Version : 2.5 . 0
2018-02-13 19:03:53 +00:00
* Author : Automattic
* Author URI : https :// woocommerce . com
2018-12-04 14:51:21 +00:00
* Text Domain : woo - gutenberg - products - block
2019-11-11 17:06:03 +00:00
* Requires at least : 5.0
* Requires PHP : 5.6
2019-11-15 15:32:40 +00:00
* WC requires at least : 3.7
2019-11-11 17:06:03 +00:00
* WC tested up to : 3.8
2018-12-11 17:14:02 +00:00
*
* @ package WooCommerce\Blocks
2019-07-01 12:52:44 +00:00
* @ internal This file is only used when running the REST API as a feature plugin .
2018-02-13 19:03:53 +00:00
*/
2019-07-01 12:52:44 +00:00
defined ( 'ABSPATH' ) || exit ;
2018-02-13 19:03:53 +00:00
2019-11-15 15:32:40 +00:00
$minimum_wp_version = '5.0' ;
2019-11-15 12:33:43 +00:00
/**
* Whether notices must be displayed in the current page ( plugins and WooCommerce pages ) .
*
2019-11-19 17:20:22 +00:00
* @ since 2.5 . 0
2019-11-15 12:33:43 +00:00
*/
function should_display_compatibility_notices () {
$current_screen = get_current_screen ();
if ( ! isset ( $current_screen ) ) {
return false ;
}
$is_plugins_page =
property_exists ( $current_screen , 'id' ) &&
'plugins' === $current_screen -> id ;
$is_woocommerce_page =
property_exists ( $current_screen , 'parent_base' ) &&
'woocommerce' === $current_screen -> parent_base ;
return $is_plugins_page || $is_woocommerce_page ;
}
if ( version_compare ( $GLOBALS [ 'wp_version' ], $minimum_wp_version , '<' ) ) {
/**
* Outputs for an admin notice about running WooCommerce Blocks on outdated WordPress .
*
2019-11-19 17:20:22 +00:00
* @ since 2.5 . 0
2019-11-15 12:33:43 +00:00
*/
function woocommerce_blocks_admin_unsupported_wp_notice () {
if ( should_display_compatibility_notices () ) {
?>
< div class = " notice notice-error is-dismissible " >
< p >< ? php esc_html_e ( 'WooCommerce Blocks requires a more recent version of WordPress and has been paused. Please update WordPress to continue enjoying WooCommerce Blocks.' , 'woo-gutenberg-products-block' ); ?> </p>
</ div >
< ? php
}
}
add_action ( 'admin_notices' , 'woocommerce_blocks_admin_unsupported_wp_notice' );
return ;
}
2019-11-14 17:19:22 +00:00
define ( 'WC_BLOCKS_PLUGIN_FILE' , __FILE__ );
2018-11-13 19:12:32 +00:00
/**
2019-07-01 12:52:44 +00:00
* Autoload packages .
*
* The package autoloader includes version information which prevents classes in this feature plugin
* conflicting with WooCommerce core .
*
* We want to fail gracefully if `composer install` has not been executed yet , so we are checking for the autoloader .
* If the autoloader is not present , let ' s log the failure and display a nice admin notice .
2018-11-13 19:12:32 +00:00
*/
2019-07-01 12:52:44 +00:00
$autoloader = __DIR__ . '/vendor/autoload_packages.php' ;
if ( is_readable ( $autoloader ) ) {
require $autoloader ;
} else {
if ( defined ( 'WP_DEBUG' ) && WP_DEBUG ) {
error_log ( // phpcs:ignore
sprintf (
/* translators: 1: composer command. 2: plugin directory */
esc_html__ ( 'Your installation of the WooCommerce Blocks feature plugin is incomplete. Please run %1$s within the %2$s directory.' , 'woo-gutenberg-products-block' ),
'`composer install`' ,
'`' . esc_html ( str_replace ( ABSPATH , '' , __DIR__ ) ) . '`'
)
);
}
/**
* Outputs an admin notice if composer install has not been ran .
*/
add_action (
'admin_notices' ,
function () {
?>
< div class = " notice notice-error " >
< p >
< ? php
printf (
/* translators: 1: composer command. 2: plugin directory */
esc_html__ ( 'Your installation of the WooCommerce Blocks feature plugin is incomplete. Please run %1$s within the %2$s directory.' , 'woo-gutenberg-products-block' ),
'<code>composer install</code>' ,
'<code>' . esc_html ( str_replace ( ABSPATH , '' , __DIR__ ) ) . '</code>'
);
?>
</ p >
</ div >
< ? php
}
2018-12-14 14:57:11 +00:00
);
2019-07-01 12:52:44 +00:00
return ;
2018-11-13 19:12:32 +00:00
}
2019-07-01 12:52:44 +00:00
2019-11-14 17:19:22 +00:00
add_action ( 'plugins_loaded' , array ( '\Automattic\WooCommerce\Blocks\Package' , 'init' ) );
2019-09-23 18:07:13 +00:00