PluginProbe
Polylang / 2.5.2
Polylang v2.5.2
3.8.9 3.8.8 3.8.7 3.8.6 3.8.5 3.8.4 3.8.3 2.7 2.7.0.1 2.7.1 2.7.2 2.7.3 2.7.4 2.8 2.8.1 2.8.2 2.8.3 2.8.4 2.9 2.9.1 2.9.2 3.0 3.0.1 3.0.2 3.0.3 All 233 releases
← All changes | polylang.php +55 -72 3.8.82.5.2 View file →
@@ -1,32 +1,24 @@
1 1 <?php
2 +
2 3 /**
3 - * Polylang
4 - *
5 - * @package Polylang
6 - * @author WP SYNTEX
7 - * @license GPL-3.0-or-later
8 - *
9 - * @wordpress-plugin
10 - * Plugin Name: Polylang
11 - * Plugin URI: https://polylang.pro
12 - * Description: Adds multilingual capability to WordPress
13 - * Version: 3.8.8
14 - * Requires at least: 6.5
15 - * Requires PHP: 7.4
16 - * Author: WP SYNTEX
17 - * Author URI: https://polylang.pro
18 - * Text Domain: polylang
19 - * License: GPL v3 or later
20 - * License URI: https://www.gnu.org/licenses/gpl-3.0.txt
21 - *
4 +Plugin Name: Polylang
5 +Plugin URI: https://polylang.pro
6 +Version: 2.5.2
7 +Author: Frédéric Demarle
8 +Author uri: https://polylang.pro
9 +Description: Adds multilingual capability to WordPress
10 +Text Domain: polylang
11 +Domain Path: /languages
12 + */
13 +
14 +/*
22 15 * Copyright 2011-2019 Frédéric Demarle
23 - * Copyright 2019-2026 WP SYNTEX
24 16 *
25 - * This program is free software: you can redistribute it and/or modify
17 + * This program is free software; you can redistribute it and/or modify
26 18 * it under the terms of the GNU General Public License as published by
27 - * the Free Software Foundation, either version 3 of the License, or
28 - * (at your option) any later version.
19 + * the Free Software Foundation; either version 2 of the License, or
20 + * ( at your option ) any later version.
29 21 *
30 22 * This program is distributed in the hope that it will be useful,
31 23 * but WITHOUT ANY WARRANTY; without even the implied warranty of
32 24 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
@@ -32,63 +24,54 @@
32 24 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
33 25 * GNU General Public License for more details.
34 26 *
35 27 * You should have received a copy of the GNU General Public License
36 - * along with this program. If not, see <https://www.gnu.org/licenses/>.
28 + * along with this program; if not, write to the Free Software
29 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
30 + * MA 02110-1301, USA.
31 + *
37 32 */
38 33
39 -defined( 'ABSPATH' ) || exit;
34 +if ( ! defined( 'ABSPATH' ) ) {
35 + exit; // don't access directly
36 +};
40 37
41 -if ( defined( 'POLYLANG_VERSION' ) ) {
42 - // The user is attempting to activate a second plugin instance, typically Polylang and Polylang Pro.
38 +if ( defined( 'POLYLANG_BASENAME' ) ) {
39 + // The user is attempting to activate a second plugin instance, typically Polylang and Polylang Pro
43 40 require_once ABSPATH . 'wp-admin/includes/plugin.php';
44 - require_once ABSPATH . 'wp-includes/pluggable.php';
45 -
46 - if ( is_plugin_active( plugin_basename( __FILE__ ) ) ) {
47 - deactivate_plugins( plugin_basename( __FILE__ ) ); // Deactivate this plugin.
48 - // WP does not allow us to send a custom meaningful message, so just tell the plugin has been deactivated.
49 - wp_safe_redirect( add_query_arg( 'deactivate', 'true', remove_query_arg( 'activate' ) ) );
50 - exit;
41 + if ( defined( 'POLYLANG_PRO' ) ) {
42 + // Polylang Pro is already activated
43 + if ( is_plugin_active( plugin_basename( __FILE__ ) ) ) {
44 + require_once ABSPATH . 'wp-includes/pluggable.php';
45 + deactivate_plugins( plugin_basename( __FILE__ ) ); // Deactivate this plugin
46 + // WP does not allow us to send a custom meaningful message, so just tell the plugin has been deactivated
47 + wp_safe_redirect( add_query_arg( 'deactivate', 'true', remove_query_arg( 'activate' ) ) );
48 + exit;
49 + }
50 + } else {
51 + // Polylang was activated, deactivate it to keep only what we expect to be Polylang Pro
52 + deactivate_plugins( POLYLANG_BASENAME );
51 53 }
52 - return;
53 -}
54 +} else {
55 + // Go on loading the plugin
56 + define( 'POLYLANG_VERSION', '2.5.2' );
57 + define( 'PLL_MIN_WP_VERSION', '4.7' );
54 58
55 -// Go on loading the plugin.
56 -define( 'POLYLANG_VERSION', '3.8.8' );
57 -define( 'PLL_MIN_WP_VERSION', '6.5' );
58 -define( 'PLL_MIN_PHP_VERSION', '7.4' );
59 + define( 'POLYLANG_FILE', __FILE__ ); // this file
60 + define( 'POLYLANG_BASENAME', plugin_basename( POLYLANG_FILE ) ); // plugin name as known by WP
61 + define( 'POLYLANG_DIR', dirname( POLYLANG_FILE ) ); // our directory
62 + define( 'POLYLANG', ucwords( str_replace( '-', ' ', dirname( POLYLANG_BASENAME ) ) ) );
59 63
60 -define( 'POLYLANG_FILE', __FILE__ );
61 -define( 'POLYLANG_DIR', __DIR__ );
64 + define( 'PLL_ADMIN_INC', POLYLANG_DIR . '/admin' );
65 + define( 'PLL_FRONT_INC', POLYLANG_DIR . '/frontend' );
66 + define( 'PLL_INC', POLYLANG_DIR . '/include' );
67 + define( 'PLL_INSTALL_INC', POLYLANG_DIR . '/install' );
68 + define( 'PLL_MODULES_INC', POLYLANG_DIR . '/modules' );
69 + define( 'PLL_SETTINGS_INC', POLYLANG_DIR . '/settings' );
62 70
63 -// Whether we are using Polylang or Polylang Pro, get the filename of the plugin in use.
64 -if ( ! defined( 'POLYLANG_ROOT_FILE' ) ) {
65 - define( 'POLYLANG_ROOT_FILE', __FILE__ );
66 -}
71 + require_once PLL_INC . '/class-polylang.php';
67 72
68 -if ( ! defined( 'POLYLANG_BASENAME' ) ) {
69 - define( 'POLYLANG_BASENAME', plugin_basename( __FILE__ ) ); // Plugin name as known by WP.
70 - require __DIR__ . '/vendor/autoload.php';
73 + if ( file_exists( PLL_INC . '/class-polylang-pro.php' ) ) {
74 + define( 'POLYLANG_PRO', true );
75 + require_once PLL_INC . '/class-polylang-pro.php';
76 + }
71 77 }
72 -
73 -define( 'POLYLANG', ucwords( str_replace( '-', ' ', dirname( POLYLANG_BASENAME ) ) ) );
74 -
75 -if ( ! empty( $_GET['deactivate-polylang'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification
76 - return;
77 -}
78 -
79 -require POLYLANG_DIR . '/src/constant-functions.php';
80 -if ( ! PLL_Usable::can_activate() ) {
81 - // WP version or php version is too old.
82 - return;
83 -}
84 -
85 -define( 'POLYLANG_ACTIVE', true );
86 -
87 -if ( PLL_Deactivate::is_deactivation() ) {
88 - // Stopping here if we are going to deactivate the plugin (avoids breaking rewrite rules).
89 - PLL_Deactivate::add_hooks();
90 - return;
91 -}
92 -
93 -PLL_Activate::add_hooks();
94 -new Polylang();