Elementor Core Cơ bản
Trước khi khởi tạo, tiện ích bổ sung nên kiểm tra xem các yêu cầu cơ bản của nó có được đáp ứng hay không. Nếu các yêu cầu này không được đáp ứng, tiện ích bổ sung sẽ không chạy.
Các kiểm tra cơ bản
Vì tiện ích bổ sung mở rộng chức năng cốt lõi của Elementor, nó nên kiểm tra để đảm bảo cả phiên bản Elementor và PHP đều tương thích.
final class Plugin {
/**
* Minimum Elementor Version
*
* @since 1.0.0
* @var string Minimum Elementor version required to run the addon.
*/
const MINIMUM_ELEMENTOR_VERSION = ‘3.20.0’;
/**
* Minimum PHP Version
*
* @since 1.0.0
* @var string Minimum PHP version required to run the addon.
*/
const MINIMUM_PHP_VERSION = ‘7.4’;
/**
* Constructor
*
* Perform some compatibility checks to make sure basic requirements are meet.
* If all compatibility checks pass, initialize the functionality.
*
* @since 1.0.0
* @access public
*/
public function __construct() {
if ( $this->is_compatible() ) {
// Run init process here…
}
}
/**
* Compatibility Checks
*
* Checks whether the site meets the addon requirement.
*
* @since 1.0.0
* @access public
* @return bool
*/
public function is_compatible(): bool {
// Check if Elementor is installed and activated
if ( ! did_action( ‘elementor/loaded’ ) ) {
add_action( ‘admin_notices’, [ $this, ‘admin_notice_missing_main_plugin’ ] );
return false;
}
// Check for required Elementor version
if ( ! version_compare( ELEMENTOR_VERSION, self::MINIMUM_ELEMENTOR_VERSION, ‘>=’ ) ) {
add_action( ‘admin_notices’, [ $this, ‘admin_notice_minimum_elementor_version’ ] );
return false;
}
// Check for required PHP version
if ( version_compare( PHP_VERSION, self::MINIMUM_PHP_VERSION, ‘<‘ ) ) {
add_action( ‘admin_notices’, [ $this, ‘admin_notice_minimum_php_version’ ] );
return false;
}
return true;
}
/**
* Admin notice
*
* Warning when the site doesn’t have Elementor installed or activated.
*
* @since 1.0.0
* @access public
*/
public function admin_notice_missing_main_plugin(): void {
if ( isset( $_GET[‘activate’] ) ) unset( $_GET[‘activate’] );
$message = sprintf(
/* translators: 1: Plugin name 2: Elementor */
esc_html__( ‘”%1$s” requires “%2$s” to be installed and activated.’, ‘elementor-test-addon’ ),
‘‘ . esc_html__( ‘Elementor Test Addon’, ‘elementor-test-addon’ ) . ‘‘,
‘‘ . esc_html__( ‘Elementor’, ‘elementor-test-addon’ ) . ‘‘
);
printf( ‘\u003cdiv class=”notice notice-warning is-dismissible”\u003e\u003cp\u003e%1$s\u003c/p\u003e\u003c/div\u003e’, $message );
}
/**
* Admin notice
*
* Warning when the site doesn’t have a minimum required Elementor version.
*
* @since 1.0.0
* @access public
*/
public function admin_notice_minimum_elementor_version(): void {
if ( isset( $_GET[‘activate’] ) ) unset( $_GET[‘activate’] );
$message = sprintf(
/* translators: 1: Plugin name 2: Elementor 3: Required Elementor version */
esc_html__( ‘”%1$s” requires “%2$s” version %3$s or greater.’, ‘elementor-test-addon’ ),
‘‘ . esc_html__( ‘Elementor Test Addon’, ‘elementor-test-addon’ ) . ‘‘,
‘‘ . esc_html__( ‘Elementor’, ‘elementor-test-addon’ ) . ‘‘,
self::MINIMUM_ELEMENTOR_VERSION
);
printf( ‘\u003cdiv class=”notice notice-warning is-dismissible”\u003e\u003cp\u003e%1$s\u003c/p\u003e\u003c/div\u003e’, $message );
}
/**
* Admin notice
*
* Warning when the site doesn’t have a minimum required PHP version.
*
* @since 1.0.0
* @access public
*/
public function admin_notice_minimum_php_version(): void {
if ( isset( $_GET[‘activate’] ) ) unset( $_GET[‘activate’] );
$message = sprintf(
/* translators: 1: Plugin name 2: PHP 3: Required PHP version */
esc_html__( ‘”%1$s” requires “%2$s” version %3$s or greater.’, ‘elementor-test-addon’ ),
‘‘ . esc_html__( ‘Elementor Test Addon’, ‘elementor-test-addon’ ) . ‘‘,
‘‘ . esc_html__( ‘PHP’, ‘elementor-test-addon’ ) . ‘‘,
self::MINIMUM_PHP_VERSION
);
printf( ‘\u003cdiv class=”notice notice-warning is-dismissible”\u003e\u003cp\u003e%1$s\u003c/p\u003e\u003c/div\u003e’, $message );
}
}
Bạn có thể thêm bao nhiêu kiểm tra tương thích tùy ý, ví dụ tốt nhất là Elementor Pro, nhưng nó có thể là bất cứ thứ gì. Nếu một trong các yêu cầu cơ bản không thành công, tiện ích bổ sung sẽ không chạy.
Nguồn:https://developers.elementor.com