Hi @walid91,
I have checked the Classified Listing plugin using a simple configuration, so I cannot guarantee that the below snippet will work under every condition. Basically, the source of the problem here is that Classified Listing uses an additional set of rewrite rules for “My account” sections’ permalinks:
/**
* Classified Listing
*/
function pm_rtcl_endpoints($query, $old_query, $uri_parts, $pm_query, $content_type) {
if(function_exists('rtcl')) {
$rtcl = rtcl();
if(!empty($pm_query['endpoint']) && !empty($pm_query['id'])) {
$rtcl_endpoint = $pm_query['endpoint'];
} else if(empty($pm_query['endpoint']) && is_numeric($pm_query['endpoint_value'])) {
$rtcl_endpoint = basename($pm_query['uri']);
} else {
return $query;
}
// Get RTCL query variables and endpoint names
$rtcl_query_vars = $rtcl->query->get_query_vars();
$query_var_name = array_search($rtcl_endpoint, $rtcl_query_vars);
// A. Change query variable name ("Edit account")
if(!empty($query_var_name) && $query_var_name == 'edit-account') {
unset($query[$rtcl_endpoint]);
unset($query['pagename']);
$query['rtcl_edit_account'] = $rtcl_endpoint;
$query['page_id'] = $pm_query['id'];
}
// B. Restore original query if 'rtcl_action' or pagination endpoint is detected
else if(empty($pm_query['id']) && !empty($old_query['rtcl_action'])) {
$query = $old_query;
$query['do_not_redirect'] = 1;
}
// C. Restore original query if pagination endpoint is detected
else if(!empty($old_query['paged']) && in_array($query_var_name, array('listings', 'favourites', 'payments'))) {
$query = $old_query;
$query['do_not_redirect'] = 1;
}
}
return $query;
}
add_filter('permalink_manager_filter_query', 'pm_rtcl_endpoints', 10, 5);