#/** * @package Akismet */ /* Plugin Name: Akismet Anti-spam: Spam Protection Plugin URI: https://akismet.com/ Description: Used by millions, Akismet is quite possibly the best way in the world to protect your blog from spam. Akismet Anti-spam keeps your site protected even while you sleep. To get started: activate the Akismet plugin and then go to your Akismet Settings page to set up your API key. Version: 5.4 Requires at least: 5.8 Requires PHP: 7.2 Author: Automattic - Anti-spam Team Author URI: https://automattic.com/wordpress-plugins/ License: GPLv2 or later Text Domain: akismet */ /* This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. Copyright 2005-2025 Automattic, Inc. */ // Make sure we don't expose any info if called directly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
| Server IP : 62.109.13.187 / Your IP : 216.73.216.11 [ Web Server : Apache/2.4.6 (CentOS) mpm-itk/2.4.7-04 OpenSSL/1.0.2k-fips PHP/8.2.28 System : Linux robothost.ru 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64 User : mosrembit ( 6064) PHP Version : 8.2.28 Disable Function : NONE Domains : 0 Domains MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /proc/self/cwd/wp-content/plugins/cyr2lat/src/php/BackgroundProcesses/ |
Upload File : |
<?php
/**
* Background old term slugs converting process
*
* @package cyr-to-lat
*/
namespace CyrToLat\BackgroundProcesses;
use CyrToLat\Main;
use stdClass;
/**
* Class TermConversionProcess
*/
class TermConversionProcess extends ConversionProcess {
/**
* Site locale.
*
* @var string
*/
private $locale;
/**
* Current term to convert.
*
* @var stdClass
*/
private $term;
/**
* Process action name
*
* @var string
*/
protected $action;
/**
* TermConversionProcess constructor.
*
* @param Main $main Plugin main class.
*/
public function __construct( Main $main ) {
$this->action = constant( 'CYR_TO_LAT_TERM_CONVERSION_ACTION' );
$this->locale = get_locale();
parent::__construct( $main );
}
/**
* Task. Updates single term
*
* @param stdClass $term Queue item to iterate over.
*
* @return boolean
* @noinspection PhpParameterNameChangedDuringInheritanceInspection
* @noinspection PhpMissingReturnTypeInspection
* @noinspection ReturnTypeCanBeDeclaredInspection
*/
protected function task( $term ) {
global $wpdb;
$this->term = $term;
$slug = urldecode( $term->slug );
add_filter( 'locale', [ $this, 'filter_term_locale' ] );
$transliterated_slug = $this->main->transliterate( $slug );
remove_filter( 'locale', [ $this, 'filter_term_locale' ] );
if ( $transliterated_slug !== $slug ) {
// phpcs:ignore WordPress.DB.DirectDatabaseQuery
$wpdb->update( $wpdb->terms, [ 'slug' => rawurlencode( $transliterated_slug ) ], [ 'term_id' => $term->term_id ] );
$this->log( __( 'Term slug converted:', 'cyr2lat' ) . ' ' . $slug . ' => ' . $transliterated_slug );
}
return false;
}
/**
* Complete
*
* @noinspection ReturnTypeCanBeDeclaredInspection
*/
protected function complete() {
parent::complete();
wp_cache_flush();
$this->log( __( 'Term slugs conversion completed.', 'cyr2lat' ) );
}
/**
* Filter term locale
*
* @return string|mixed
* @noinspection PhpUndefinedFunctionInspection
*/
public function filter_term_locale() {
// Polylang filter.
if ( class_exists( 'Polylang' ) ) {
$pll_pll_get_term_language = pll_get_term_language( $this->term->term_taxonomy_id );
if ( false !== $pll_pll_get_term_language ) {
return $pll_pll_get_term_language;
}
return $this->locale;
}
// WPML filter.
$args = [
'element_type' => $this->term->taxonomy,
'element_id' => $this->term->term_taxonomy_id,
];
$wpml_element_language_details = apply_filters( 'wpml_element_language_details', false, $args );
if ( ! isset( $wpml_element_language_details->language_code ) ) {
return $this->locale;
}
$language_code = $wpml_element_language_details->language_code;
$wpml_active_languages = apply_filters( 'wpml_active_languages', false, [] );
return $wpml_active_languages[ $language_code ]['default_locale'] ?? $this->locale;
}
}