WordPress智库

weForms 插件添加自定义数据列到提交内容列表

我们知道,可以通过 manage_posts_columnsmanage_posts_custom_column 添加自定义数据列到文章列表,这一操作在所有文章类型中都可以使用。

weForms 是由 weDevs 开发的一个 WordPress 表单插件,该插件的后端 UI 使用 Vue 构建,速度很快,流行的 WP User Frontend 和Dokan 插件也是由该公司开发。

在 weForms 插件中,用户提交的数据列表看上去是一个文章类型,但是,事实上,他却不是个文章类型,而是自定义数据表中的内容,通过 Vue 组件展示了出来。所以我们是无法通过上面的方法来添加自定义数据列到这个列表中的。好在 weForms 插件为我们提供了两个 Filter 可以让我们实现类型的操作。

添加自定义数据列表头

$columns 是一个数据,里面包含了用户提交记录数据表中的所有表头数据。

add_filter('weforms_get_entry_columns', function ($columns, $form_id)
{
    $columns[ 'datetime' ] = 'Datetime';

    return $columns;
}, 10, 2);

添加自定义数据到对应的数据列

$entries 是用户提交的记录中的内容,我们可以使用 print_r 函数打印出来,看一下里面的数据,如果没有我们需要的数据,我们还可以通过 $form_id 来获取。

add_filter('weforms_get_entries', function ($entries, $form_id)
{
    foreach ($entries as $entry) {
        $entry->fields[ 'datetime' ] = $entry->created_at;
    }

    return $entries;
}, 10, 2);

设计良好的插件都会在需要的地方添加一些 Filter 或 Action 供我们添加或修改插件的功能,实现我们的需求,我们开发自己插件的时候,也可以参考这种做法,方便更多用户使用。

退出移动版