У меня есть клиент с веб-сайтом, где клиенты могут заказать товар, а продавцы могут заказать образцы продаж.Я хочу, чтобы можно было отображать отдельные страницы продукта для одной категории, но скрывать отдельные страницы продукта для всех других продуктов.
Я использовал этот код в прошлом, чтобы скрыть все страницы продукта., но мне нужно отфильтровать по категориям.Любые подсказки?
//Remove all single product pages
function hide_product_page($args){
$args["publicly_queryable"]=false;
$args["public"]=false;
return $args;
}
add_filter( 'woocommerce_register_post_type_product','hide_product_page',12,1);
РЕДАКТИРОВАТЬ: Вот фон: образцы продуктов продаж являются бесплатными, и у нас есть одна страница заказа для тех, которые доступны по паролю (не отдельные страницы продукта.) Даже если страницы категорийне были показаны, отдельные страницы продукта по-прежнему существуют.Некоторые случайные люди нашли эти страницы и разместили заказы на «бесплатный» продукт.Я должен предотвратить это, поэтому недостаточно просто «спрятать» отдельные страницы продукта, я должен убедиться, что они не существуют.Однако нам все еще нужны страницы продуктов для обычных продуктов, которые продаются для широкой публики.
РЕДАКТИРОВАТЬ: я в конечном итоге использовал это в моих функциях. Php:
function custom_shop_page_redirect(){
if (class_exists('WooCommerce')){
if(is_product()){
global $post;
$price = get_post_meta( $post->ID, '_regular_price', true);
if($price == 0) {
wp_redirect(home_url());
exit();
}
}
}
return;
}
add_action('template_redirect','custom_shop_page_redirect');
Это непроверьте категорию, но отключите страницы продукта для товаров с нулевой ценой.Это завершает то, что мне нужно.