47288db826
Baseline before backporting wp-data-optimizer v3.0.1-v3.4.6. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TbG1keQQ7XBa7qMQY16KCY
63 lines
2.0 KiB
PHP
63 lines
2.0 KiB
PHP
<?php
|
|
/**
|
|
* Bootstrap for 2meet Data Optimizer WooCommerce AddOn.
|
|
*
|
|
* @package TMDO_WOOCOMMERCE
|
|
* @since 0.1.0
|
|
*/
|
|
|
|
if ( ! defined( 'ABSPATH' ) ) {
|
|
exit;
|
|
}
|
|
|
|
final class TMDO_Woocommerce_Bootstrap {
|
|
|
|
public static function init(): void {
|
|
if ( ! class_exists( 'TMDO_API' ) && ! class_exists( 'WPDO_API' ) ) {
|
|
add_action( 'admin_notices', array( __CLASS__, 'missing_core_notice' ) );
|
|
return;
|
|
}
|
|
|
|
load_plugin_textdomain(
|
|
'tmdo-woocommerce',
|
|
false,
|
|
dirname( plugin_basename( TMDO_WOOCOMMERCE_FILE ) ) . '/languages'
|
|
);
|
|
|
|
// 載入 4 個 WC 整合檔案
|
|
require_once TMDO_WOOCOMMERCE_PATH . 'includes/class-tmdo-woocommerce.php';
|
|
require_once TMDO_WOOCOMMERCE_PATH . 'includes/class-tmdo-wc-term-count-filter.php';
|
|
require_once TMDO_WOOCOMMERCE_PATH . 'includes/class-tmdo-wc-orders-interceptor.php';
|
|
|
|
if ( is_admin() ) {
|
|
require_once TMDO_WOOCOMMERCE_PATH . 'admin/class-tmdo-admin-wc.php';
|
|
if ( class_exists( 'TMDO_Admin_WC' ) && method_exists( 'TMDO_Admin_WC', 'register' ) ) {
|
|
add_action( 'plugins_loaded', array( 'TMDO_Admin_WC', 'register' ), 30 );
|
|
}
|
|
}
|
|
|
|
// WPDO_WooCommerce::register() 會掛 wpdo_register_fields / custom_tables / entity_fields
|
|
if ( class_exists( 'TMDO_WooCommerce' ) && method_exists( 'TMDO_WooCommerce', 'register' ) ) {
|
|
TMDO_WooCommerce::register();
|
|
}
|
|
|
|
// WC orders commission interceptor
|
|
if ( class_exists( 'TMDO_WooCommerce' )
|
|
&& TMDO_WooCommerce::is_active()
|
|
&& class_exists( 'TMDO_WC_Orders_Interceptor' ) ) {
|
|
( new TMDO_WC_Orders_Interceptor() )->register_hooks();
|
|
}
|
|
|
|
// WC term count filter
|
|
if ( class_exists( 'TMDO_WC_Term_Count_Filter' ) ) {
|
|
add_action( 'init', array( 'TMDO_WC_Term_Count_Filter', 'init' ), 5 );
|
|
}
|
|
}
|
|
|
|
public static function missing_core_notice(): void {
|
|
echo '<div class="notice notice-error"><p>';
|
|
echo esc_html__( '2meet Data Optimizer WooCommerce AddOn 需要 2meet-data-optimizer 核心外掛,請先安裝並啟用。', 'tmdo-woocommerce' );
|
|
echo '</p></div>';
|
|
}
|
|
}
|