如何在评论模板中添加隐私复选框?

时间:2013-12-19 作者:Yannic Hansen

我需要在文件注释模板中添加一个隐私复选框。php。我创建了复选框和一个段落,到目前为止,它看起来很好。

<input type="checkbox" name="privacy" value="privacy-key" class="privacyBox" aria-req="true"><p class="pprivacy">Hiermit akzeptiere ich die <a target="blank" href="http://wp.cloudstarter.de/?page_id=156">Datenschutzbedingungen</a><p>
现在,我想将此复选框与提交按钮连接起来,以便用户必须接受隐私才能对帖子发表评论。有人知道怎么做吗?或者有没有提供这种服务的插件?

1 个回复
最合适的回答,由SO网友:Bainternet 整理而成

您可以使用提供的过滤器来执行所有操作:

//add your checkbox after the comment field
add_filter( \'comment_form_field_comment\', \'my_comment_form_field_comment\' );
function my_comment_form_field_comment( $comment_field ) {
    return $comment_field.\'<input type="checkbox" name="privacy" value="privacy-key" class="privacyBox" aria-req="true"><p class="pprivacy">Hiermit akzeptiere ich die <a target="blank" href="http://wp.cloudstarter.de/?page_id=156">Datenschutzbedingungen</a><p>\';
}
//javascript validation
add_action(\'wp_footer\',\'valdate_privacy_comment_javascript\');
function valdate_privacy_comment_javascript(){
    if (is_single() && comments_open()){
        wp_enqueue_script(\'jquery\');
        ?>
        <script type="text/javascript">
        jQuery(document).ready(function($){
            $("#submit").click(function(e){
                if (!$(\'.privacyBox\').prop(\'checked\')){
                    e.preventDefault();
                    alert(\'You must agree to our privacy term by checking the box ....\');
                    return false;
                }
            })
        });
        </script>
        <?php
    }
}

//no js fallback validation
add_filter( \'preprocess_comment\', \'verify_comment_privacy\' );
function verify_comment_privacy( $commentdata ) {
    if ( ! isset( $_POST[\'privacy\'] ) )
        wp_die( __( \'Error: You must agree to our privacy term by checking the box ....\' ) );

    return $commentdata;
}

//save field as comment meta
add_action( \'comment_post\', \'save_comment_privacy\' );
function save_comment_privacy( $comment_id ) {
    add_comment_meta( $comment_id, \'privacy\', $_POST[ \'privacy\' ] );
}

结束

相关推荐

Custom Post Types in plugins?

我一直在想这个。在我现在看到的大多数插件中,它们看起来像CPT,但没有“已发布”链接。他们也不担任职务。它们只是停留在仪表板中的插件,页面和列列表顶部有“添加新”链接,当您单击“编辑”时,可以像在任何其他CPT中一样编辑项目。所以我想知道他们是否是CPT?如果是的话,有没有关于这方面的教程?我正在考虑为我的网站创建一个插件,我想要的是构建一个插件,我可以“添加新项目”,并保存项目(并且可以编辑)。我可以通过短代码调用项目。我知道如何在函数中创建CPT。php和我一直在阅读关于基本插件创建的内容。我似乎找不