Пользовательский статус продукта WooCommerce не отображается / работает - PullRequest
0 голосов
/ 26 ноября 2018

Поскольку мне нужно было создать пользовательский статус продукта, я искал в Google "WooCommerce создать пользовательский статус продукта", но не нашел результатов.Поэтому я вспомнил, что продукт в WooCommerce похож на публикацию в WordPress, поэтому я поискал «Создать пользовательский статус записи в WordPress» и нашел учебник.

Я сделал это так, как описано там, и получилось


Я впервые зарегистрировал пользовательский статус сообщения в своих темах. Function.php:

register_post_status( 'custom-hide-product', array(
    'label'                     => _x( 'Produkt versteckt', 'post' ),
    'public'                    => false,
    'exclude_from_search'       => true,
    'show_in_admin_all_list'    => true,
    'show_in_admin_status_list' => true,
    'label_count'               => _n_noop( 'Produkt versteckt <span class="count">(%s)</span>', 'Produkt versteckt <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 === 'post' ) {
        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 . '>Produkt versteckt</option>");
                    $(".misc-pub-section label").append("' . $label . '");
                });
              </script>
        ';
    }
}

Выпадающий список в продукте:

enter image description here

Но когда я проверяю выпадающий статус продукта, мой пользовательский статус сообщения не отображается / не устанавливается или что-то еще.Вы видите проблему?Я не могу ..

1 Ответ

0 голосов
/ 27 ноября 2018

Я проверил ваш код, и есть одна маленькая ошибка.У вас есть ошибка в последней части вашего кода.Замените его следующим:

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 . '>Produkt versteckt</option>");
                    $(".misc-pub-section label").append("' . $label . '");
                });
              </script>
        ';
    }
}

Я заменил post в операторе if на product.Проверено работает.Веселись!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...