在Woocommerce中从产品设置“库存”到“常规”选项卡显示库存状态选项

时间:2018-11-11 07:32:38

标签: php wordpress woocommerce product hook-woocommerce

默认情况下,在woocommerce中,stock status选项位于“库存” 标签下。

如何在general标签下显示确切的选项?

搜索时,我偶然发现了woocommerce/includes/abstracts/abstract-wc-product.php中的这段代码:

public function set_stock_status( $status = 'instock' ) {
    $valid_statuses = wc_get_product_stock_status_options();

    if ( isset( $valid_statuses[ $status ] ) ) {
        $this->set_prop( 'stock_status', $status );
    } else {
        $this->set_prop( 'stock_status', 'instock' );
    }
}

然后在functions.php中,我添加了:

add_action( 'woocommerce_product_options_general_product_data', 'check_stock_status' );` 

但是什么也没发生。可能是我调用了错误的函数。

P / S:我正在使用WC 2.6.4

1 个答案:

答案 0 :(得分:1)

要显示重复的库存状态设置,请在Woocommerce “产品数据” 元框 中的“常规” 标签 ,您可以使用以下可用的动作挂钩之一:

  • woocommerce_product_options_general_product_data
  • woocommerce_product_options_pricing (隐藏在某些产品类型上)
  • woocommerce_product_options_downloads (如果无法下载产品则隐藏)
  • woocommerce_product_options_tax (隐藏在某些产品类型上)

代码 (注释了“ wrapper_class”参数以强制显示)

add_action( 'woocommerce_product_options_general_product_data', 'stock_status_in_general_options_settings' );
function stock_status_in_general_options_settings() {
    global $post, $product_object;

    woocommerce_wp_select(
        array(
            'id'            => '_stock_status',
            'value'         => $product_object->get_stock_status( 'edit' ),
            // 'wrapper_class' => 'stock_status_field hide_if_variable hide_if_external hide_if_grouped',
            'label'         => __( 'Stock status', 'woocommerce' ),
            'options'       => wc_get_product_stock_status_options(),
            'desc_tip'      => true,
            'description'   => __( 'Controls whether or not the product is listed as "in stock" or "out of stock" on the frontend.', 'woocommerce' ),
        )
    );
}

代码进入您的活动子主题(活动主题)的function.php文件中。

enter image description here