>  기사  >  백엔드 개발  >  WooCommerce 4의 WooCommerce 제품에 사용자 정의 재고 상태를 추가하는 방법은 무엇입니까?

WooCommerce 4의 WooCommerce 제품에 사용자 정의 재고 상태를 추가하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-03 14:59:02648검색

How to Add Custom Stock Statuses to WooCommerce Products in WooCommerce 4 ?

WooCommerce 4의 WooCommerce 제품에 대한 사용자 정의 재고 상태

WooCommerce 4의 제품에 사용자 정의 재고 상태를 추가하는 과정은 비교적 간단합니다. 그러나 상태가 프런트엔드와 백엔드에 올바르게 표시되도록 하려면 특정 기능을 수정해야 합니다.

사용자 정의 재고 상태 추가

사용자 정의 재고 상태를 추가하려면 다음을 추가하세요. 다음 코드를 function.php 파일에 추가하세요.

<code class="php">function filter_woocommerce_product_stock_status_options( $status ) {
    // Add new statuses
    $status['pre_order'] = __('Pre Order', 'woocommerce');
    $status['contact_us'] = __('Contact us', 'woocommerce');

    return $status;
}
add_filter( 'woocommerce_product_stock_status_options', 'filter_woocommerce_product_stock_status_options', 10, 1 );</code>

이 코드는 "사전 주문" 및 "문의하기"라는 두 가지 새로운 상태를 추가합니다.

사용자 정의 재고 가용성 표시

사용자 정의 상태가 프런트엔드에 올바르게 표시되도록 하려면 다음 변경 사항을 적용하세요.

<code class="php">// Availability text
function filter_woocommerce_get_availability_text( $availability, $product ) {
    // Get stock status
    switch( $product->get_stock_status() ) {
        case 'pre_order':
            $availability = __( 'Pre Order', 'woocommerce' );
            break;
        case 'contact_us':
            $availability = __( 'Contact us', 'woocommerce' );
            break;
    }

    return $availability;
}
add_filter( 'woocommerce_get_availability_text', 'filter_woocommerce_get_availability_text', 10, 2 );

// Availability CSS class
function filter_woocommerce_get_availability_class( $class, $product ) {
    // Get stock status
    switch( $product->get_stock_status() ) {
        case 'pre_order':
            $class = 'pre-order';
            break;
        case 'contact_us':
            $class = 'contact-us';
            break;
    }

    return $class;
}
add_filter( 'woocommerce_get_availability_class', 'filter_woocommerce_get_availability_class', 10, 2 );</code>

관리 제품 목록에 재고 상태 표시

관리 제품 목록 테이블에 사용자 정의 재고 상태를 표시하려면 다음 기능을 수정하십시오.

<code class="php">// Admin stock html
function filter_woocommerce_admin_stock_html( $stock_html, $product ) {
    // Simple
    if ( $product->is_type( 'simple' ) ) {
        // Get stock status
        $product_stock_status = $product->get_stock_status();
    // Variable
    } elseif ( $product->is_type( 'variable' ) ) {
        foreach( $product->get_visible_children() as $variation_id ) {
            // Get product
            $variation = wc_get_product( $variation_id );

            // Get stock status
            $product_stock_status = $variation->get_stock_status();
        }
    }

    // Stock status
    switch( $product_stock_status ) {
        case 'pre_order':
            $stock_html = '<mark class=&quot;pre-order&quot; style=&quot;background:transparent none;color:#33ccff;font-weight:700;line-height:1;&quot;>' . __( 'Pre order', 'woocommerce' ) . '</mark>';
            break;
        case 'contact_us':
            $stock_html = '<mark class=&quot;contact-us&quot; style=&quot;background:transparent none;color:#cc33ff;font-weight:700;line-height:1;&quot;>' . __( 'Contact us', 'woocommerce' ) . '</mark>';
            break;
    }

    return $stock_html;
}
add_filter( 'woocommerce_admin_stock_html', 'filter_woocommerce_admin_stock_html', 10, 2 );</code>

선택 사항: 후크에서 사용자 정의 재고 상태 사용

다음을 수행할 수 있습니다. $product 개체에 액세스할 수 있거나 전역 $product를 사용할 수 있는 경우 후크에서 사용자 정의 재고 상태를 사용합니다.

참고:

  • 다음과 같은 경우 전역 $product를 사용합니다. woocommerce_shop_loop_item_title 및 woocommerce_single_product_summary 후크와 같은 $product 개체에 액세스할 수 없습니다.
  • woocommerce_get_price_html 후크에서와 같이 기본적으로 콜백 함수에 전달된 경우 $product 개체에 액세스합니다.

위 내용은 WooCommerce 4의 WooCommerce 제품에 사용자 정의 재고 상태를 추가하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.