首頁 >後端開發 >php教程 >如何為 WooCommerce 產品新增「預訂」和「聯絡我們」等自訂庫存狀態?

如何為 WooCommerce 產品新增「預訂」和「聯絡我們」等自訂庫存狀態?

Linda Hamilton
Linda Hamilton原創
2024-11-02 22:32:291083瀏覽

How to Add Custom Stock Statuses like “Preorder” and “Contact Us” to WooCommerce Products?

如何在WooCommerce 4 中為產品添加自訂庫存狀態

問題

自訂庫存狀態,例如「預訂」和「聯絡我們” WooCommerce 4 中的產品選項中缺少“,”。

解決方案

將以下代碼添加到您的functions.php 文件中:

// Add new stock status options
add_filter( 'woocommerce_product_stock_status_options', 'filter_woocommerce_product_stock_status_options', 10, 1 );
function filter_woocommerce_product_stock_status_options( $status ) {
    $status['pre_order'] = __( 'Pre order', 'woocommerce' );
    $status['contact_us'] = __( 'Contact us', 'woocommerce' );
    return $status;
}

// Availability text
add_filter( 'woocommerce_get_availability_text', 'filter_woocommerce_get_availability_text', 10, 2 );
function filter_woocommerce_get_availability_text( $availability, $product ) {
    switch( $product->get_stock_status() ) {
        case 'pre_order':
            $availability = __( 'Pre order', 'woocommerce' );
        break;
        case 'contact_us':
            $availability = __( 'Contact us', 'woocommerce' );
        break;
    }
    return $availability; 
}

// Availability CSS class
add_filter( 'woocommerce_get_availability_class', 'filter_woocommerce_get_availability_class', 10, 2 );
function filter_woocommerce_get_availability_class( $class, $product ) {
    switch( $product->get_stock_status() ) {
        case 'pre_order':
            $class = 'pre-order';
        break;
        case 'contact_us':
            $class = 'contact-us';
        break;
    }
    return $class;
}

// Admin stock html
add_filter( 'woocommerce_admin_stock_html', 'filter_woocommerce_admin_stock_html', 10, 2 );
function filter_woocommerce_admin_stock_html( $stock_html, $product ) {
    switch( $product->get_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;
}

補充說明:

  • 這些變更不會影響現有庫存狀態。
  • 新的庫存狀態將出現在產品頁面上,單一產品頁面和管理產品清單。
  • 如果需要,您可以在已經有權限存取 $product 物件的掛鉤中使用自訂庫存狀態。

以上是如何為 WooCommerce 產品新增「預訂」和「聯絡我們」等自訂庫存狀態?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn