【问题标题】:How to Update Post Meta with AJAX如何使用 AJAX 更新 Post Meta
【发布时间】:2018-01-18 16:49:20
【问题描述】:

我创建了一个网站,为自定义帖子类型、字段、元框等初始化 CMB2。我创建了一个自定义复选框字段,它的作用就像一个标志。选中或未选中。此复选框位于自定义帖子类型元框中,并且在后端可见。

我们需要实现的是在前端有一个按钮供用户点击。单击按钮时,复选框的值应更改(此复选框的 update_post_meta)。

我想这应该使用 AJAX 来完成,但以前没有使用它的经验。

这是代码应该去的地方。它检查 Checkbox 是否被选中,如果被选中则它只输出 .如果未选中,则应输出切换复选框状态的按钮。

<?php $adopted_check = get_post_meta( get_the_ID(), INVENTOR_LISTING_PREFIX . 'adopted-check', true ); ?>
                    <?php if ( $adopted_check ) { ?>
                             <div class="adopted"><i class="fa fa-thumbs-up" style="font-size: 20px;"></i><span><?php echo esc_attr__( 'Adopted', 'inventor' ); ?></span></div>
                        <?php } else { ?>
                        <button type="submit">Mark as Adopted</button>
                    <?php } ?>

有人可以帮忙吗?

【问题讨论】:

    标签: php ajax wordpress checkbox cmb2


    【解决方案1】:

    您可以在 jQuery 中创建这样的 ajax 调用

    $.ajax({
                type: "POST",
                url: ajaxurl,
                async:true,
                data: { 
                    action: 'callback_action', 
                    security: $('#security').val(),
                    custom_info:custom_info
                },
                cache: false,
            });
    

    现在 wordpress 会自动捕捉带有 wp_ajax_ 动作的动作,例如:

    add_action('wp_ajax_callback_action','function_name');
    function function_name(){
    $security = $_POST['security'];
    $custom_info = $_POST['custom_info'];
    // your code goes here to update the meta
    die()// It's necessary to add die at the end of an ajax call or it will return 0.
    }
    

    完成。

    【讨论】:

    • jQuery 代码去哪儿了?在 Functions.php 中?动作:'callback_action',->我应该用其他东西替换它还是应该按原样复制粘贴? security & custom_info 是我要修改的字段吗?根据我上面的例子,这应该是“采用检查”?按钮的 html 怎么样?
    • 有人可以详细说明一下吗?我仍然需要这方面的帮助...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-06
    相关资源
    最近更新 更多