首页 >后端开发 >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