即使草稿也要更新自定义发布元数据

时间:2017-08-08 作者:elke_wtf

我目前有一个带有WooCommerce订阅插件的WooCommerce网站。我试图在通过仪表板创建新订阅订单时添加post meta,但在订阅仍处于挂起状态时,很难保存meta。

仅当满足以下两个条件时,我才需要保存该值:

只有当帖子是通过WordPress仪表板创建的,而不是通过前端的购物车系统创建时,才应首先创建帖子

add_action( \'added_post_meta\', \'shop_sync_on_shop_subscription_save\', 10, 4 );
add_action( \'updated_post_meta\', \'shop_sync_on_shop_subscription_save\', 10, 4 );
function shop_sync_on_shop_subscription_save( $meta_id, $post_id, $meta_key, $meta_value ) {
        if ( $meta_key == \'_edit_lock\' ) { // we\'ve been editing the post
            if ( get_post_type( $post_id ) == \'shop_subscription\' ) { // we\'ve been editing a subscription
                $remaining_issues = get_post_meta($post_id, \'_remaining_issues\');

                if ($remaining_issues == "") {  // we only want to update to the default 6 if this has not already been set
                  update_post_meta($post_id, \'_remaining_issues\', \'6\');
                }
            }
        }
    }

1 个回复
SO网友:Mammaltron

如果找不到键,不带第三个参数的get\\u post\\u meta()将返回一个空数组,因此每次检查$剩余的\\u问题都会失败。

尝试

$remaining_issues = get_post_meta($post_id, \'_remaining_issues\',true);

if ($remaining_issues === false) {  // we only want to update to the default 6 if this has not already been set
              update_post_meta($post_id, \'_remaining_issues\', \'6\');
}

结束

相关推荐

列出分类法:如果分类法没有POST,就不要列出分类法--取决于定制的POST-META?

这可能很难解释,我不知道是否有解决办法!?我有一个名为“wr\\u event”的自定义帖子类型和一个名为“event\\u type”的分层自定义分类法。自定义帖子类型有一个元框,用于event_date 并且与此帖子类型关联的所有帖子都按以下方式排序event_date. 我在循环中有一个特殊的条件来查询event_date 已经发生了-在这种情况下,它没有显示,但只列在我的档案中。就像你可以使用wp_list_categories() 我编写了一个自定义函数,它以完全相同的方式列出所有分类术语。现在