Показать опцию состояния запасов в настройках продукта «Инвентарь» на вкладке «Общие» в Woocommerce - PullRequest
0 голосов
/ 11 ноября 2018

В 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 голосов
/ 11 ноября 2018

Чтобы отобразить дублированную настройку состояния запаса, выберите поле в Woocommerce "Данные продукта" metabox в поле "Общие" вкладка , вы может использовать один из следующих доступных хуков действий:

  • 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 вашей активной дочерней темы (active theme).

enter image description here

...