Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Menambah Status Stok Tersuai pada Produk WooCommerce dalam WooCommerce 4?

Bagaimana untuk Menambah Status Stok Tersuai pada Produk WooCommerce dalam WooCommerce 4?

Susan Sarandon
Susan Sarandonasal
2024-11-03 14:59:02703semak imbas

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

Status Stok Tersuai untuk Produk WooCommerce dalam WooCommerce 4

Menambah status stok tersuai pada produk dalam WooCommerce 4 ialah proses yang agak mudah. Walau bagaimanapun, ia memerlukan pengubahsuaian fungsi tertentu untuk memastikan bahawa status dipaparkan dengan betul di bahagian hadapan dan bahagian belakang.

Menambah Status Stok Tersuai

Untuk menambah status stok tersuai, tambah kod berikut pada fail functions.php anda:

<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>

Kod ini menambah dua status baharu: "Prapesanan" dan "Hubungi Kami".

Memaparkan Ketersediaan Stok Tersuai

Untuk memastikan status tersuai dipaparkan dengan betul di bahagian hadapan, gunakan perubahan berikut:

<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>

Memaparkan Status Stok dalam Senarai Produk Pentadbir

Untuk memaparkan status stok tersuai dalam jadual senarai produk pentadbir, ubah suai fungsi berikut:

<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>

Pilihan: Menggunakan Status Stok Tersuai dalam Cangkuk

Anda boleh gunakan status stok tersuai dalam cangkuk apabila anda mempunyai akses kepada objek $product atau boleh menggunakan $product global.

Nota:

  • Gunakan global $product apabila anda tidak mempunyai akses kepada objek $product, seperti dalam cangkuk woocommerce_shop_loop_item_title dan woocommerce_single_product_summary.
  • Akses objek $product jika dihantar secara lalai kepada fungsi panggil balik, seperti dalam cangkuk woocommerce_get_price_html.

Atas ialah kandungan terperinci Bagaimana untuk Menambah Status Stok Tersuai pada Produk WooCommerce dalam WooCommerce 4?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn