【问题标题】:Add custom product status in woocommerce在 woocommerce 中添加自定义产品状态
【发布时间】:2023-02-08 05:12:14
【问题描述】:

我们在基于 woocommerce 的网站上销售电脑部件。 IT 产品很快就会变旧,因此我有数以千计的报废 (EOL) 产品。 我们通过 REST API 更新和检查价格,因此我们的系统在 EOL 产品上花费了太多时间。 另一方面,我们不想删除它们或将它们设为私有,因为它们会从谷歌搜索中带来大量访问者。 所以,我们想给产品添加一个自定义状态。就像停产一样。所以产品将在谷歌上列出,但由于我们只会更新已发布状态的产品,所以不会有问题。

我找到了下面的代码,但不能确定它是否正确。因为当我添加此代码并选择 EOL 时,它看起来不像我想要的那样。 在选择 EOL 之前:https://prnt.sc/00qzWQV6saTp 选择 EOL 并保存后:https://prnt.sc/VkTzLq1S1EZP

有什么建议吗?

    register_post_status( 'custom-hide-product', array(
    'label'                     => _x( 'EOL', 'post' ),
    'public'                    => true,
    'exclude_from_search'       => false,
    'show_in_admin_all_list'    => true,
    'show_in_admin_status_list' => true,
    'label_count'               => _n_noop( 'EOL <span class="count">(%s)</span>', 'EOL <span class="count">(%s)</span>' ),
) );
   
add_action( 'admin_footer', 'display_hide_status_option' );
function display_hide_status_option() {
    global $post;
    $complete = '';
    $label    = '';
    if ( $post->post_type === 'product' ) {
        if ( $post->post_status === 'custom-hide-product' ) {
            $selected = 'selected';
        }
        echo '<script>
                jQuery(document).ready(function($){
                    $("select#post_status").append("<option value=\"custom-hide-product\" ' . $complete . '>EOL</option>");
                    $(".misc-pub-section label").append("' . $label . '");
                });
              </script>
        ';
    }
}

【问题讨论】:

    标签: wordpress woocommerce


    【解决方案1】:

    $label 在您的代码中始终为空,如果 $post->post_status === 'custom-hide-product' 则必须设置它。

    如果 $label 为“EOL”,则将 $(".misc-pub-section label").append("' . $label . '"); 替换为 $(".misc-pub-section #post-status-display").html("' . $label . '");

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多