简体   繁体   English

WordPress更新挂钩错误后

[英]After Wordpress Update Hook error

I have updated my Wordpress to Version 4.9.4 Since then I have an issue with a custom hook, which I created. 我已经将我的Wordpress更新到版本4.9.4,此后,我就创建了一个自定义钩子。 Basically it set products (Woocommerce) to stock manage yes and stock quantity 1. Then it set the default language to English (WPML Plugin). 基本上,它将产品(Woocommerce)设置为库存管理yes和库存数量1。然后将默认语言设置为英语(WPML Plugin)。 Before the update, the hook worked without any error. 在更新之前,该挂钩正常工作,没有任何错误。 I cannot find the bug in this code. 我在此代码中找不到错误。 Can you please support me? 你能支持我吗?

add_action('save_post', 'myWoo_savePost', 10, 2);

function myWoo_savePost($postID, $post) {
    if (isset($post->post_type) && $post->post_type == 'product') {

    update_post_meta($post->ID, '_manage_stock', 'yes');
        update_post_meta($post->ID, '_stock', '1');

    }

    //start translation
        $inserted_post_ids = $post->ID;

    if ( $inserted_post_ids) {
        // https://wpml.org/wpml-hook/wpml_element_type/
        $wpml_element_type = apply_filters( 'wpml_element_type', 'post_product' );

        // get the language info of the original post
        // https://wpml.org/wpml-hook/wpml_element_language_details/
        $get_language_args = array('element_id' => $inserted_post_ids, 'element_type' => 'post_product' );
        $original_post_language_info = apply_filters( 'wpml_element_language_details', null, $get_language_args );

        $set_language_args = array(
            'element_id'    => $inserted_post_ids,
            'element_type'  => $wpml_element_type,
            'trid'   => $original_post_language_info->trid,
            'language_code'   => 'en',
            'source_language_code' => $original_post_language_info->language_code
        );

        do_action( 'wpml_set_element_language_details', $set_language_args );
    }
    //end translation
}

I fixed the bug. 我已修复该错误。 I just need to enclose the second if in the first if state. 如果处于第一个if状态,我只需要将第二个括起来。 So basically, move the closing bracket ("}") after update_post_meta($post->ID, '_stock', '1'); 因此,基本上,将右括号(“}”)放在update_post_meta($ post-> ID,'_stock','1')之后; to the end. 到最后。 Here the final code: 这里是最终代码:

add_action('save_post', 'myWoo_savePost', 10, 2);

function myWoo_savePost($postID, $post) {
    if (isset($post->post_type) && $post->post_type == 'product') {

    update_post_meta($post->ID, '_manage_stock', 'yes');
        update_post_meta($post->ID, '_stock', '1');


    //start translation
        $inserted_post_ids = $post->ID;

    if ( $inserted_post_ids) {
        // https://wpml.org/wpml-hook/wpml_element_type/
        $wpml_element_type = apply_filters( 'wpml_element_type', 'post_product' );

        // get the language info of the original post
        // https://wpml.org/wpml-hook/wpml_element_language_details/
        $get_language_args = array('element_id' => $inserted_post_ids, 'element_type' => 'post_product' );
        $original_post_language_info = apply_filters( 'wpml_element_language_details', null, $get_language_args );

        $set_language_args = array(
            'element_id'    => $inserted_post_ids,
            'element_type'  => $wpml_element_type,
            'trid'   => $original_post_language_info->trid,
            'language_code'   => 'en',
            'source_language_code' => $original_post_language_info->language_code
        );

        do_action( 'wpml_set_element_language_details', $set_language_args );
    }
    //end translation
 }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM