WooCommerce 4 中 WooCommerce 产品的自定义库存状态
向 WooCommerce 4 中的产品添加自定义库存状态是一个相对简单的过程。但需要修改具体功能,以保证前后端正确显示状态。
添加自定义库存状态
添加自定义库存状态,添加将以下代码添加到您的functions.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="pre-order" style="background:transparent none;color:#33ccff;font-weight:700;line-height:1;">' . __( 'Pre order', 'woocommerce' ) . '</mark>'; break; case 'contact_us': $stock_html = '<mark class="contact-us" style="background:transparent none;color:#cc33ff;font-weight:700;line-height:1;">' . __( 'Contact us', 'woocommerce' ) . '</mark>'; break; } return $stock_html; } add_filter( 'woocommerce_admin_stock_html', 'filter_woocommerce_admin_stock_html', 10, 2 );</code>
可选:在 Hooks 中使用自定义库存状态
您可以当您有权访问 $product 对象或可以使用全局 $product 时,请在钩子中使用自定义库存状态。
注意:
以上是如何在 WooCommerce 4 中向 WooCommerce 产品添加自定义库存状态?的详细内容。更多信息请关注PHP中文网其他相关文章!