base, ['upload', 'post'], true)) {
$mediaLibraryJs = self::$assetsManager->getAssetUrl('resources/js/media-library.js', false);
wp_enqueue_script(
Constants::AATXT_PLUGIN_MEDIA_LIBRARY_HANDLE,
$mediaLibraryJs,
['jquery'],
false,
true
);
wp_localize_script(
Constants::AATXT_PLUGIN_MEDIA_LIBRARY_HANDLE,
'AATXT',
[
'altTextNonce' => wp_create_nonce(Constants::AATXT_AJAX_GENERATE_ALT_TEXT_NONCE),
'ajaxUrl' => admin_url('admin-ajax.php'),
]
);
}
}
public function renderGenerateButtonTemplate(): void
{
?>
ID)) {
return $form_fields;
}
$mimeType = get_post_mime_type($post->ID);
$altTextGenerationTypology = PluginOptions::typology();
if ($altTextGenerationTypology === Constants::AATXT_OPTION_TYPOLOGY_CHOICE_OPENAI
&& ! in_array($mimeType, Constants::AATXT_OPENAI_ALLOWED_MIME_TYPES, true)
) {
return $form_fields;
}
if ($altTextGenerationTypology === Constants::AATXT_OPTION_TYPOLOGY_CHOICE_AZURE
&& ! in_array($mimeType, Constants::AATXT_AZURE_ALLOWED_MIME_TYPES, true)
) {
return $form_fields;
}
$form_fields['generate_alt_text'] = [
'label' => get_post_mime_type($post->ID),
'input' => 'html',
'html' => '',
'helps' => '',
];
return $form_fields;
}
public function generateAltText(): void
{
check_ajax_referer(Constants::AATXT_AJAX_GENERATE_ALT_TEXT_NONCE, 'nonce');
$postId = isset($_POST['post_id']) ? intval($_POST['post_id']) : 0;
if (! $postId) {
wp_send_json_error('Invalid Post ID');
return;
}
$mediaUrl = wp_get_attachment_url($postId);
if (! $mediaUrl) {
wp_send_json_error('Media not found');
return;
}
$generatedAltText = Setup::altText($postId);
wp_send_json_success(['alt_text' => $generatedAltText]);
}
}