WordPress remove_filter not working

The “remove_filter” function only accepts 3 params: the hook name (“wp_date”), the callback function (“wpp_fix_i18n”) and the priority (10). You are using 4 params.

I’m sure your problem is related with the execution lifecycle. You are trying to remove a filter before it was created.

To solve it, wrap your function inside init hook in your theme functions.php to ensure plugin is loaded (and filter is added):

function mytheme_fix_date_issue () {
    if (get_locale() != 'fa_IR')  {
        remove_filter('wp_date', 'wpp_fix_i18n', 10);
    }
}
add_action('init', 'mytheme_fix_date_issue');