如何在插入自定义帖子后调用其他插件

时间:2018-01-30 作者:kashalo

我使用(wp\\u insert\\u post)构建了自定义脚本来导入woocommerce产品,我想调用其他插件将其数据插入到db的每个新产品中,例如:

插入产品后,如果我打开该产品并单击将yoast seo插入更新到db所有必需的信息,如\\u yoast\\u wpseo\\u primary\\u product\\u brand等,以及第二个示例,如果在插入过程中,产品库存默认为0 woocommerce,请将产品放入库存,直到我单击更新。

我试图调用wp\\u update\\u post($post\\u id),但没有任何更改。

你能给我一些建议吗:)

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

我不完全理解你的问题-也许这会有帮助:

wp_insert_post(array(
    // your woocomm post being inserted
));

// at insert, `save_post` will fire
add_action( \'save_post\', \'my_plugin_save_post\' , 10 , 3 );

function my_plugin_save_post($post_id, $post, $update) {

    // check other firing of this: if this is a revision, get real post ID
    if ( $parent_id = wp_is_post_revision( $post_id ) ) 
        $post_id = $parent_id;

    // you can condialize if you want to exicute on new posts (like `wp_insert_post`), or if you\'re UPDATEing a post
    if ($update) {
        // only run if post has been saved before

        // ------ example: you can UPDATE the `post` itself with ------

        // unhook this function so it doesn\'t loop infinitely
        remove_action( \'save_post\', \'my_plugin_save_post\' );

        // update the post, which calls save_post again
        wp_update_post( 
            array( 
                \'ID\' => $post_id, 
                \'post_status\' => \'private\' 
            ) 
        );

        // re-hook this function
        add_action( \'save_post\', \'my_plugin_save_post\' );

        // ------ example: or you can do post meta work ------

        if ($somthing == true)
            update_post_meta($post_id, ...

        // ------ example: or "call" other plugins ----

        wc_update_product_stock(...);

    } else {
        // only run if post is brand new
    }   
}

结束

相关推荐

将jQuery变量传递给php函数并运行它

这可能是一个重复的问题,但我无法使用此链接”POST from jQuery to PHP“所以请帮助我实现这一点。我正在尝试将jquery变量传递给php函数并运行它。我有freshdeskreply.js文件,我的php函数位于主题文件夹的send\\u reply.php中。在js文件中,我试图传递这个。name(即票证id)和textreply(即textarea值)到我的php函数并运行它。我已经试了一周了,但没能成功,请一步一步地给我看看。非常感谢。我还能够提醒js值,但无法将其发布到php函