私のプラグイン設定の私のファイルDelete
オプションの隣にUpload
ボタンを追加したいです。
現時点では、以下のフォームを使用してSettings APIを使用しています。
<form method="post" action="options.php" enctype="multipart/form-data">
<?php
settings_fields("mw_options");
do_settings_sections("mw_options");
submit_button();
?>
</form>
それは素晴らしい作品、私はフォームに約10のフィールドがあり、それらの一つはWoocommerceの電子メールに添付ファイルを追加するファイルのアップロードです。すべてうまくいきますが、フォーム内のDelete
ボタンの横にUpload
ボタンを追加したいので、updated_optionまたはdelete_optionフック、またはもっと適したものを使用できます。
どうすればよいのかわかりません。
今私は自分のdelete_attachment.phpとformactionを使って仕事を終わらせていますが、後でもっとやりたいのですが、もっと良い方法があると思います。
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
}
どのように私は私が持っているいくつかの削除スクリプトを実行するメインオプションの領域内に別のボタンを作成することができますか?
私はこの方法で削除ボタンを追加することに成功しました、それはまた追加の送信ボタンを追加するために使用されるかもしれません。
名前と配列属性で送信ボタンを作成します。
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
}
コールバック関数で設定を登録する、私の場合はmw_options_wc_order_attachement_1_handle
が関数の名前です。
register_setting("mw_options", "mw_options_wc_order_attachement_1", "mw_options_wc_order_attachement_1_handle");
コールバック関数を次のようにします。
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
}
}
}