true, 'height' => true, 'controls' => true, 'playsinline' => true, 'autoplay' => true, 'muted' => true, 'loop' => true, 'preload' => true, 'src' => true, 'class' => true, 'style' => true]; $tags['source'] = ['src' => true, 'type' => true]; $tags['iframe'] = ['src' => true, 'width' => true, 'height' => true, 'frameborder' => true, 'allowfullscreen' => true, 'allow' => true, 'class' => true, 'style' => true]; } return $tags; } /** * Helper: Create WooCommerce API keys programmatically. * Wrapped in class_exists check to prevent duplicate declaration fatal error. */ function importify_create_woo_keys($app_name, $user_id, $scope) { if (!class_exists("WC_Auth")) return false; if (!class_exists("importify_AuthCustom")) { class importify_AuthCustom extends WC_Auth { public function getKeys($app_name, $user_id, $scope) { return parent::create_keys($app_name, $user_id, $scope); } } } $auth = new importify_AuthCustom(); return $auth->getKeys($app_name, $user_id, $scope); } function importify_activation_hook() { $data = array( 'store' => get_site_url(), 'email' => get_option('admin_email'), 'event' => 'install', ); $response = importify_send_request('/woocomerce/status', $data); if ($response) { if ($response['success'] > 0) { if (!get_option('importify_api_key')) { add_option('importify_api_key', $response['api_key']); $keys = importify_create_woo_keys($response['app_name'], $response['user_id'], $response['scope']); if ($keys) { $data = array( 'store' => get_site_url(), 'keys' => $keys, 'user_id' => $response['user_id'], 'event' => 'update_keys' ); $keys_response = importify_send_request('/woocomerce/status', $data); if ($keys_response && $keys_response['success'] == 0) { update_option('importify_error', 'yes'); update_option('importify_error_message', $keys_response['message']); } } } else { update_option('importify_api_key', $response['api_key']); } } else { $msg = isset($response['message']) ? $response['message'] : 'Error activation plugin!'; update_option('importify_error', 'yes'); update_option('importify_error_message', $msg); } } else { update_option('importify_error', 'yes'); update_option('importify_error_message', 'Could not connect to Importify server. Please check your internet connection and try again.'); } } function importify_deactivation_hook() { if (!current_user_can('activate_plugins')) { return; } $data = array( 'store' => get_site_url(), 'event' => 'deactivated', ); return importify_send_request('/woocomerce/status', $data); } function importify_uninstall_hook() { if (!current_user_can('activate_plugins')) { return; } delete_option('importify_api_key'); delete_option('importify_error'); delete_option('importify_error_message'); delete_option('importify_check'); importify_clear_all_caches(); $data = array( 'store' => get_site_url(), 'event' => 'uninstall', ); return importify_send_request('/woocomerce/status', $data); } function importify_add_admin_css_js() { wp_register_style('importify_style', IMPORTIFY_URL . '/assets/css/style.css', array(), IMPORTIFY_VERSION); wp_enqueue_style('importify_style'); // No plugin-owned JS is shipped — the admin view inlines its