SHOW:
|
|
- or go back to the newest paste.
1 | /** | |
2 | * Random string in permastructure | |
3 | - | * Use %random% in "Permastructure" settings |
3 | + | * Use %state% and %city% in "Permastructure" settings |
4 | */ | |
5 | - | function pm_random_string_field($default_uri, $native_slug, $post, $slug, $native_uri) { |
5 | + | function pm_extra_permastructure_tags($default_uri, $native_slug, $post, $slug, $native_uri) { |
6 | // Do not affect native URIs | |
7 | - | if($native_uri == true || empty($post->post_type)) { return $default_uri; } |
7 | + | // Limit to 'product' post type only |
8 | if($native_uri == true || empty($post->post_type) || $post->post_type !== 'product') { return $default_uri; } | |
9 | - | if(strpos($default_uri, '%random%') !== false) { |
9 | + | |
10 | - | $chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; |
10 | + | // Store post ID in a separate variable |
11 | - | $length = 12; |
11 | + | $post_id = $post->ID; |
12 | - | $random_string = substr(str_shuffle($chars), 0, $length); |
12 | + | |
13 | // Get post location data | |
14 | - | $default_uri = str_replace('%random%', $random_string, $default_uri); |
14 | + | $post_location = gmw_get_post_location_data($post_id); |
15 | ||
16 | if(strpos($default_uri, '%state%') !== false) { | |
17 | // Use GeomyWP API to get the 'state' field | |
18 | // ... | |
19 | - | add_filter('permalink_manager_filter_default_post_uri', 'pm_random_string_field', 3, 5); |
19 | + | |
20 | $state = ''; | |
21 | ||
22 | $default_uri = str_replace('%state%', $state, $default_uri); | |
23 | } | |
24 | ||
25 | if(strpos($default_uri, '%city%') !== false) { | |
26 | // Use GeomyWP API to get the 'city' field | |
27 | // ... | |
28 | ||
29 | $city = ''; | |
30 | ||
31 | $default_uri = str_replace('%city%', $city, $default_uri); | |
32 | } | |
33 | ||
34 | return $default_uri; | |
35 | } | |
36 | add_filter('permalink_manager_filter_default_post_uri', 'pm_extra_permastructure_tags', 3, 5); |