首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WordPress Contact form 7表单字段在数据为空时隐藏

WordPress Contact form 7表单字段在数据为空时隐藏
EN

Stack Overflow用户
提问于 2018-03-04 01:40:17
回答 1查看 1.7K关注 0票数 0

我已经在我的网站上使用了联系方式7插件。我想在WordPress仪表板上显示邮寄的数据。为了达到这个目的,我使用了一个叫做"Contact Form CFDB7“的插件。我的表单有下拉字段。它是有条件地表现出来的。(例如,一个字段是country,另一个字段是states,因此如果选择country作为US,则state字段仅列出美国的州。这是通过使用插件“contact Form7 conditional fields.”获取的。)因此,当发送邮件时,它将列出仪表板.its中的所有数据,其中既有空字段,也有填充字段。因此,我的问题是在仪表板中只显示已填充字段的任何选项。

请帮我解决同样的问题。问候

EN

回答 1

Stack Overflow用户

发布于 2018-03-04 02:14:16

我发现了一个过滤器,在将表单数据保存到数据库之前,您可以使用它来删除空值。

cfdb7_before_save_data筛选器应该可以做到这一点。

这是未经测试的,但它应该可以工作。您还可以交换循环,并使用诸如array_filter()之类的东西来清理一些代码。此外,如果您不使用PHP 7+,请删除返回类型提示。

代码语言:javascript
复制
/**
 * Removes null values and empty strings from form data before it's saved
 * into the database.
 *
 * @link   https://stackoverflow.com/questions/49087192/wordpress-contact-form-7-form-field-hiding-when-data-is-null
 *
 * @param  array $form_data
 *
 * @return array $form_data 
 */
add_filter( 'cfdb7_before_save_data', function ( array $form_data ): array {

    foreach ( $form_data as $key => $value ) {
        if ( null === $value || '' === $value ) {
            unset( $form_data[ $key ] );
        }
    }

    return $form_data;
} );

此代码段适用于旧版本的PHP。你可以把它放在你的functions.php的底部。

代码语言:javascript
复制
/**
 * Removes null values and empty strings from form data before it's saved
 * into the database.
 *
 * @link   https://stackoverflow.com/questions/49087192/wordpress-contact-form-7-form-field-hiding-when-data-is-null
 *
 * @param  array $form_data
 *
 * @return array $form_data
 */
function prefix_or_namespace_filter_cfdb7_before_save_data( array $form_data ) {

    foreach ( $form_data as $key => $value ) {
        if ( null === $value || '' === $value ) {
            unset( $form_data[ $key ] );
        }
    }

    return $form_data;
}

add_filter( 'cfdb7_before_save_data', 'themeprefix_filter_cfdb7_before_save_data', 999 );

如果你仍然收到一个错误,请提供错误消息的屏幕截图,或者打开你的PHP或WordPress错误日志并从那里复制错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49087192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档