Задать вопрос
@80689248440

Отобржение своего статуса таксономии в плагине woocomerce — не работает — почему?

Добавил собственный статус записи для таксономии товаров вот таким кодом
function true_status_custom(){
	register_post_status( 'nal', array(
		'label'                     => 'На заказ',
		'label_count'               => _n_noop( 'На заказ <span class="count">(%s)</span>', 'Архивы <span class="count">(%s)</span>' ),
		'public'                    => true,
		'show_in_admin_status_list' => true
	) );
}
add_action( 'init', 'true_status_custom' );


function true_append_post_status_list(){
	global $post;
	$optionselected = '';
 	$statusname = '';
	if( $post->post_type == 'product' ){
		if($post->post_status == 'nal'){
			$optionselected = ' selected="selected"';
			$statusname = "$('#post-status-display').text('На заказ');";
		}
		
		echo "<script>
		jQuery(function($){
			$('select#post_status').append('<option value=\"nal\"$optionselected>На заказ</option>');
			$statusname
		});
		</script>";
	}
}
add_action('admin_footer-post-new.php', 'true_append_post_status_list');
add_action('admin_footer-post.php', 'true_append_post_status_list');

но woocomerce показывает этот товар только админам, а когда разлогиниваешься то количество товаров в категории с этим товаром верное, а сам товар не показывается.
Куда копать? Может есть хук или править сам плагин? Если плагин то я не могу понять где имено
  • Вопрос задан
  • 144 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 1
@80689248440 Автор вопроса
разобрался - все дело в файле abstract-wc-product.php
добавляем так
} elseif ( $this->post->post_status === 'nal' ) {
			$purchasable = true;

		// Check the product is published
		} elseif ( $this->post->post_status !== 'publish' && ! current_user_can( 'edit_post', $this->id ) ) {
			$purchasable = false;		
		}

и вот так
} elseif ( $this->post->post_status === 'nal' ) {
			$visible = true;
		// Published/private
		} elseif ( $this->post->post_status !== 'publish' && ! current_user_can( 'edit_post', $this->id ) ) {
			$visible = false;
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы