' . __('Settings', 'ai-image-alt-text-generator') . ''; array_unshift($links, $settings_link); return $links; } // Add settings link to plugin page $plugin_basename = plugin_basename(__FILE__); add_filter("plugin_action_links_$plugin_basename", 'aiimatg_add_settings_link'); /** * Define plugin constants and setup paths * @version 1.0.0 * @since 1.0.0 */ // Plugin directory and URL paths define('AIIMATG_PLUGIN_DIR', plugin_dir_path(__FILE__)); define('AIIMATG_PLUGIN_URL', plugin_dir_url(__FILE__)); // External service API endpoints // All generation and service functionality is handled by the external API service define('AIIMATG_API_URL', 'https://alttext.axilweb.com'); define('AIIMATG_ROOT_API_ENDPOINT', 'https://alttext.axilweb.com/backendapp/api/api-key/generate-alt-text'); define('AIIMATG_AUTH_ENDPOINT', 'https://alttext.axilweb.com/backendapp/api/v1/validate-token'); // Include required files require_once AIIMATG_PLUGIN_DIR . 'vendor/autoload.php'; /** * Display an informational notice if API key is not configured * This is purely informational and doesn't limit plugin functionality * The plugin will still work without an API key but won't be able to connect to the external service * @return void * @version 1.0.0 * @since 1.0.0 */ function aiimatg_service_info_notice() { if (!is_admin() || !current_user_can('manage_options')) { return; } $access_token = get_option('aiimatg_access_token'); if (empty($access_token)) { add_action('admin_notices', 'aiimatg_api_key_notice'); } } add_action('admin_init', 'aiimatg_service_info_notice'); /** * Display admin notice for missing API key * @return void * @version 1.0.0 * @since 1.0.0 */ function aiimatg_api_key_notice() { $settings_page = admin_url('admin.php?page=aiimatg-settings'); $plugin_name = 'AI Image Alt Text Generator'; /** * Allowed HTML for the message * @var array */ $allowed_html = array( 'strong' => array(), 'a' => array( 'href' => array(), 'class' => array(), ), ); $message = sprintf( /* translators: %1$s: Plugin name, %2$s: Settings page URL */ wp_kses( __('%1$s: To connect to the external AI service for generating alt text, please configure your API key. This is only needed for the external AI service functionality.', 'ai-image-alt-text-generator'), $allowed_html ), esc_html($plugin_name), esc_url($settings_page) ); ?>

getMessage()); ?>

count_all_images(); } /** * Count images without alt text * @return int * @version 1.0.0 * @since 1.0.0 */ function aiimatg_count_images_without_alt() { return aiimatg_get_admin_instance()->count_images_without_alt(); } /** * Count product images without alt text * @return int * @version 1.0.0 * @since 1.0.0 */ function aiimatg_count_product_images_without_alt() { return aiimatg_get_admin_instance()->count_product_images_without_alt(); } /** * Check if WooCommerce is active * @return void * @version 1.0.0 * @since 1.0.0 */ function aiimatg_check_woocommerce() { if (!class_exists('WooCommerce')) { add_action('admin_notices', 'aiimatg_woocommerce_notice'); } } /** * Check if WooCommerce is active * @return void * @version 1.0.0 * @since 1.0.0 */ add_action('admin_init', 'aiimatg_check_woocommerce'); /** * Display notice if WooCommerce is not active * @return void * @version 1.0.0 * @since 1.0.0 */ function aiimatg_woocommerce_notice() { ?>