loadDependencies(); if (is_admin()) { $this->adminHooks(); } $this->publicHooks(); } private function loadDependencies() { // Define constants before they're needed define("WOOADDTOCART_PLUGIN_DIR_URL", plugin_dir_url(__FILE__)); define("WOOADDTOCART_PLUGIN_DIR_PATH", plugin_dir_path(__FILE__)); define("WOOADDTOCART_PLUGIN_VERSION", '2.0.3'); include_once 'load.php'; } public function adminHooks() { add_filter('woocommerce_product_data_tabs', array('WooAddToCart\Classes\ProductSettings', 'registerProductDataTab')); add_action('woocommerce_product_data_panels', array('WooAddToCart\Classes\ProductSettings', 'createDataFields')); add_action('woocommerce_process_product_meta', array('WooAddToCart\Classes\ProductSettings', 'saveDataFields')); add_filter('woocommerce_get_settings_pages', array('WooAddToCart\Classes\Customization', 'wooAddToCartAddSettings'), 15, 1); add_action('admin_notices', [$this, 'adminNotice']); add_action('admin_init', [$this, 'atcbc_notice_dismissed']); } public function adminNotice() { $screen = get_current_screen(); $user_id = get_current_user_id(); $nonce = wp_create_nonce('atcbc_dismiss_notice_nonce'); // Ensure user meta exists if (!get_user_meta($user_id, 'atcbc-notice-dismissed', true)) { add_user_meta($user_id, 'atcbc-notice-dismissed', 'active'); } // Show notice only on specific screens if ($screen && in_array($screen->id, ['dashboard', 'plugins'], true)) { if (get_user_meta($user_id, 'atcbc-notice-dismissed', true) === 'active') { ?>
getInstallationDetails(); $class = 'notice notice-error'; $install_url_text = 'Click Here to Install the Plugin'; if ($pluginInfo->action == 'activate') { $install_url_text = 'Click Here to Activate the Plugin'; } $message = 'Add To Cart Button Customizations For Woocommerce Add-On Requires Woocommerce Base Plugin, ' . $install_url_text . ''; printf('%2$s