发布帖子时,在定制表中插入数字自定义帖子类型

时间:2017-07-24 作者:BenJ30

我目前正在开发一个简单的维护站点,只是为了让您了解它的功能,我会很快解释它。它利用woocommerce购买时间段,一旦购买完成,金额就会插入到自定义表中。

现在的想法是,当您在名为clients 您将花费的时间输入到一个名为hours_taken 发布后,它将运行一个函数将新号码上载到数据库。

我正在尝试让它只执行一次,这样更新发布的帖子不会占用更多的时间。

我从这个网站上的另一个问题中获得了下面的代码,具有类似的功能,但似乎不起作用。我在其中添加了一个die(),以查看代码是否在发布时运行,但它没有运行代码。

function edit_user_hours($post){
$post_id = $post->ID;
$customer_id = get_current_user_id();

if ( !get_post_meta( $post_id, \'firstpublish\', $single = true ) ) {
  // ...run code once
    $get_table = $wpdb->get_results($wpdb->prepare("SELECT * FROM wp_woocommerce_userHours WHERE userId = %s LIMIT 1", $customer_id));
    $get_table = $get_table[0];
    $mykey_values = get_post_custom_values( \'hours_taken\' );

    foreach ( $mykey_values as $key => $value ) {
        $hourBlock = $value - $get_table->hourBlocks;
    }

// Do something!
    $wpdb->query($wpdb->prepare("UPDATE wp_woocommerce_userHours SET userHours = userHours + $hourBlock WHERE userId = %s LIMIT 1",  $customer_id));
    die(\'Data inserted\');
  update_post_meta( $post_id, \'firstpublish\', true );
}
}
add_action( \'draft_to_published\', \'get_user_hours\' )

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

看看Wordpress的Post状态转换挂钩:https://codex.wordpress.org/Post_Status_Transitions

如果您添加了适当的调试(这样您就死在挂接函数的顶部),那么听起来您没有挂接到正确的操作中。

由于您正在添加一些元并检查它,以查看是否应该再次运行,因此您可以publish_custom-post-type. 此外,状态可能会令人困惑。我知道你在试草稿,但那不包括newauto-draft. 确保您对以前的状态和新状态以及post\\u类型有信心。

结束

相关推荐

Sort posts in a specific way

我目前有6个职位属于“服务”类别。每个服务都有\\u内容和1-2个文档(小册子和/或T&C以及外部表单)现在,假设这6篇文章的ID为1,2,3,4,5,6,但我希望它是2,5,3,1,4,6。这可能吗?如果是,我将如何实现它?