Я создал пользовательский функционал в WooCommerce, и речь идет о фильтрации. Если вы выберете какой-либо фильтр на боковой панели интернет-магазина, а затем перейдете на страницу отдельного продукта, у вас появятся навигационные стрелки на основе вашей предыдущей фильтрации выбора. Он работает нормально, но только в указанном c продукте я получаю сообщение об ошибке
Примечание: при попытке получить свойство ID объекта не в объекте. php в строке 355
function filter_single_post_pagination($output, $format, $link, $post){
$variable = $_GET;
if (count($variable) == 0) {
$url = get_permalink($post->ID);
if (isset($post->ID)) {
if('previous_post_link' === current_filter()){
return "<a href='$url' rel='next'>→</a>";
} else {
return "<a href='$url' rel='prev'>←</a>";
}
}
}
else {
$pids = array();
$product_ids = "";
foreach ($variable as $key => $value) {
$product_ids .= $key."&";
array_push($pids, $key);
}
global $product;
$id = $product->get_id();
$key_val = array_search($id,$pids);
$custom_link = "?".$product_ids;
if (isset($pids[$key_val+1])) {
if('previous_post_link' === current_filter()){
$rel = 'next';
$next_url = get_permalink($pids[$key_val+1]);
return "<a href='$next_url.$custom_link' rel='$rel'>→</a>";
}
}
if (isset($pids[$key_val-1])) {
if('next_post_link' === current_filter()){
$rel = 'prev';
$previous_url = get_permalink($pids[$key_val-1]);
return "<a href='$previous_url.$custom_link' rel='$rel'>←</a>";
}
}
}
}