插件设置中的自定义删除选项按钮

时间:2017-12-17 作者:Mike

我想补充一下Delete “我的文件”旁边的按钮Upload 我的插件设置中的选项。

此时,我正在使用设置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\\u option或delete\\u option挂钩,或其他更合适的选项。

我不知道该怎么做。

现在我使用自己的delete\\u附件。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
}
如何在主选项的区域内创建另一个按钮,以执行我拥有的一些删除脚本?

1 个回复
SO网友:Mike

我设法用这种方式添加了删除按钮,它也可以用来添加任何额外的提交按钮。

创建具有名称和数组属性的提交按钮:

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
        }
    }

 }

结束

相关推荐

多个wp_options表以在安装之间共享内容

我的应用程序>10user_roles, 每个都能够执行完全不同的任务,提供了自定义后端,并且没有访问wp-admin. 每个user_role 通过多个插件处理使用。每个user_role 在相同的数据(帖子、分类法等)上进行交互我的想法是对一个或多个应用程序使用单个安装user_roles 连接到单个数据库以共享用户、帖子等,但加载了不同的插件,因此只需单独wp_options 桌子目标是提供独立的登录区域(例如子域,我不希望合作伙伴使用与客户相同的登录),更容易的路由(每个角色的永久链接和重写