| @@ -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) { |
| @@ -378,9 +377,8 @@ | ||
| 378 | 377 | |
| 379 | 378 | $filterFields = parent::getFilterFieldService(); |
| 380 | 379 | $saveFiltersTrigger = true; |
| 381 | 380 | $allFiltersValid = true; |
| 382 | - $filterLinks = get_option('wpc_filter_permalinks', []); | |
| 383 | 381 | |
| 384 | 382 | // Save filter fields |
| 385 | 383 | if (!empty($filterSets[$post->post_excerpt]['wpc_filter_fields'])) { |
| 386 | 384 | $postData['wpc_filter_fields'] = $filterSets[$post->post_excerpt]['wpc_filter_fields']; |
| @@ -423,18 +421,15 @@ | ||
| 423 | 421 | $old_new_ids = []; |
| 424 | 422 | |
| 425 | 423 | foreach ($filtersToSave as $filterId => $filter) { |
| 426 | 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). | |
| 427 | 431 | $saved_filter = $filterFields->saveFilter($filter); |
| 428 | - $link_filter = $saved_filter; | |
| 429 | - $link_filter['post_content'] = maybe_serialize($link_filter['post_content']); | |
| 430 | - $entity = $link_filter['post_content']['entity']; | |
| 431 | - $taxonomy = $link_filter['post_content']['e_name']; | |
| 432 | - if (!empty($filterLinks[$entity . "#" . $taxonomy])) { | |
| 433 | - $filterField['post_name'] = $filterLinks[$entity . "#" . $taxonomy]; | |
| 434 | - } else { | |
| 435 | - $filterLinks[$entity . "#" . $taxonomy] = $filterField['post_name']; | |
| 436 | - } | |
| 437 | 432 | |
| 438 | 433 | if (isset($saved_filter['parent_filter']) && isset($saved_filter['ID'])) { |
| 439 | 434 | if (strpos($saved_filter['parent_filter'], 'filter_', 0) !== false) { |
| 440 | 435 | $update_after_save[$saved_filter['ID']][] = [ |
| @@ -445,9 +440,8 @@ | ||
| 445 | 440 | $old_new_ids[$filterId] = $saved_filter['ID']; |
| 446 | 441 | } |
| 447 | 442 | } |
| 448 | 443 | |
| 449 | - update_option('wpc_filter_permalinks', $filterLinks); | |
| 450 | 444 | // Update data after saving Filters and getting IDs of new ones. |
| 451 | 445 | if (!empty($update_after_save)) { |
| 452 | 446 | |
| 453 | 447 | foreach ($update_after_save as $filter_post_id => $fields_to_update) { |