Je voudrais ajouter le bouton Delete
à côté de mon option de fichier Upload
dans les paramètres de mon plugin.
En ce moment, j'utilise l'API Settings, en utilisant le formulaire ci-dessous.
<form method="post" action="options.php" enctype="multipart/form-data">
<?php
settings_fields("mw_options");
do_settings_sections("mw_options");
submit_button();
?>
</form>
Cela fonctionne très bien, j'ai environ 10 champs dans le formulaire, l'un d'entre eux est le téléchargement de fichier qui ajoute des pièces jointes à un e-mail de Woocommerce. Tout fonctionne très bien, mais j'aimerais ajouter le bouton Delete
à côté du bouton Upload
dans mon formulaire afin que je puisse utiliser le hook updated_option ou delete_option, ou quelque chose de plus approprié.
Je ne peux pas comprendre, comment faire cela.
Maintenant, j'utilise mes propres delete_attachment.php et formaction sur le bouton pour faire le travail, mais j'aimerais en faire plus, plus tard, et j'estime qu'il existe un meilleur moyen.
function mw_options_wc_order_attachement_1()
{
?>
<input type="file" name="mw_options_wc_order_attachement_1" id="mw_options_wc_order_attachement_1" value="<?php echo get_option('mw_options_wc_order_attachement_1'); ?>" />
<?php echo get_option("mw_options_wc_order_attachement_1"); ?>
<input type="submit" name="mw_options_wc_order_attachement_1" formaction="<?php echo plugins_url( 'delete_attachment.php' , __FILE__ );?>" formmethod="post" value="Delete">
<?php
}
Comment puis-je créer un autre bouton dans la zone de l'option principale qui exécuterait un script de suppression que j'ai?
J'ai réussi à ajouter un bouton de suppression de cette façon, il peut également être utilisé pour ajouter un bouton de soumission supplémentaire.
Créez un bouton d'envoi avec l'attribut name et array:
function mw_options_wc_order_attachement_1()
{
?>
<input type="file" name="mw_options_wc_order_attachement_1" id="mw_options_wc_order_attachement_1" value="<?php echo get_option('mw_options_wc_order_attachement_1'); ?>" />
<?php echo get_option("mw_options_wc_order_attachement_1"); ?>
<input type="submit" name="submit[delete_attachment_1]" class="button button-primary" value="Delete" />
<?php
}
Enregistrer le paramètre avec la fonction de rappel, mw_options_wc_order_attachement_1_handle
est le nom de la fonction dans mon cas.
register_setting("mw_options", "mw_options_wc_order_attachement_1", "mw_options_wc_order_attachement_1_handle");
Définissez la fonction de rappel comme ceci:
function mw_options_wc_order_attachement_1_handle($options)
{
if (isset($_POST["submit"]))
{
$submit_button = $_POST["submit"];
if (isset($submit_button["delete_attachment_1"]))
{
// delete file
wp_delete_file('YOUR-FILE-SERVER-PATH');
return ''; // returns empty option value to settings
}
}
}