| @@ -312,9 +312,8 @@ | ||
| 312 | 312 | } |
| 313 | 313 | |
| 314 | 314 | private function addAutoFilters() |
| 315 | 315 | { |
| 316 | - $filterLinks = get_option('wpc_filter_permalinks', []); | |
| 317 | 316 | $filterSets = $this->prepareFilterEntities(); |
| 318 | 317 | $filterFields = parent::getFilterFieldService(); |
| 319 | 318 | |
| 320 | 319 | if ($filterSets !== false) { |
| @@ -324,11 +323,12 @@ | ||
| 324 | 323 | $is_valid = $this->validateSetFields($filterSetFields); |
| 325 | 324 | if(!$is_valid){ |
| 326 | 325 | $errors = $this->getErrors(); |
| 327 | 326 | if(in_array(92, $errors)){ |
| 327 | + $limit = $this->getFreeLimitForPostType($filterSetFields['post_type'] ?? ''); | |
| 328 | 328 | flrt_refresh_temp_transient( |
| 329 | 329 | 'wpc_auto_filters_error', |
| 330 | - $filterFields->getErrorMessage(92) | |
| 330 | + $filterFields->getErrorMessage(92, $limit) | |
| 331 | 331 | ); |
| 332 | 332 | } |
| 333 | 333 | continue; |
| 334 | 334 | } |
| @@ -377,9 +377,8 @@ | ||
| 377 | 377 | |
| 378 | 378 | $filterFields = parent::getFilterFieldService(); |
| 379 | 379 | $saveFiltersTrigger = true; |
| 380 | 380 | $allFiltersValid = true; |
| 381 | - $filterLinks = get_option('wpc_filter_permalinks', []); | |
| 382 | 381 | |
| 383 | 382 | // Save filter fields |
| 384 | 383 | if (!empty($filterSets[$post->post_excerpt]['wpc_filter_fields'])) { |
| 385 | 384 | $postData['wpc_filter_fields'] = $filterSets[$post->post_excerpt]['wpc_filter_fields']; |
| @@ -422,18 +421,15 @@ | ||
| 422 | 421 | $old_new_ids = []; |
| 423 | 422 | |
| 424 | 423 | foreach ($filtersToSave as $filterId => $filter) { |
| 425 | 424 | // save filter |
| 425 | + // saveFilter() runs the wpc_pre_save_filter hook, where | |
| 426 | + // PermalinksTab::maybeAddGlobalPrefix() forces the slug to the | |
| 427 | + // global prefix of this entity or registers a new one in | |
| 428 | + // wpc_filter_permalinks — nothing else must touch that registry | |
| 429 | + // here (a stale copy written back afterwards used to wipe the | |
| 430 | + // freshly registered prefixes and leave a junk '#' entry). | |
| 426 | 431 | $saved_filter = $filterFields->saveFilter($filter); |
| 427 | - $link_filter = $saved_filter; | |
| 428 | - $link_filter['post_content'] = maybe_serialize($link_filter['post_content']); | |
| 429 | - $entity = $link_filter['post_content']['entity']; | |
| 430 | - $taxonomy = $link_filter['post_content']['e_name']; | |
| 431 | - if (!empty($filterLinks[$entity . "#" . $taxonomy])) { | |
| 432 | - $filterField['post_name'] = $filterLinks[$entity . "#" . $taxonomy]; | |
| 433 | - } else { | |
| 434 | - $filterLinks[$entity . "#" . $taxonomy] = $filterField['post_name']; | |
| 435 | - } | |
| 436 | 432 | |
| 437 | 433 | if (isset($saved_filter['parent_filter']) && isset($saved_filter['ID'])) { |
| 438 | 434 | if (strpos($saved_filter['parent_filter'], 'filter_', 0) !== false) { |
| 439 | 435 | $update_after_save[$saved_filter['ID']][] = [ |
| @@ -444,9 +440,8 @@ | ||
| 444 | 440 | $old_new_ids[$filterId] = $saved_filter['ID']; |
| 445 | 441 | } |
| 446 | 442 | } |
| 447 | 443 | |
| 448 | - update_option('wpc_filter_permalinks', $filterLinks); | |
| 449 | 444 | // Update data after saving Filters and getting IDs of new ones. |
| 450 | 445 | if (!empty($update_after_save)) { |
| 451 | 446 | |
| 452 | 447 | foreach ($update_after_save as $filter_post_id => $fields_to_update) { |