first commit

This commit is contained in:
2024-11-10 21:08:49 +01:00
commit 0d932ce5ee
14455 changed files with 2567501 additions and 0 deletions

View File

@@ -0,0 +1,47 @@
<?php
if (!defined('ABSPATH')) {
die('No direct access allowed');
}
/**
* Adds compatibility for Page Builder plugins.
*/
class WPO_Page_Builder_Compatibility {
/**
* Constructor.
*/
private function __construct() {
$this->disable_webp_alter_html_in_edit_mode();
}
/**
* Returns singleton instance.
*/
public static function instance() {
static $instance = null;
if (null == $instance) {
$instance = new static;
}
return $instance;
}
/**
* Checks if current page is in Page Builder edit mode.
*
* @return bool
*/
private function is_edit_mode() {
return isset($_GET['fl_builder']) || isset($_GET['et_fb']);
}
/**
* Disables altering HTML for WebP when current page is in edit mode.
*/
private function disable_webp_alter_html_in_edit_mode() {
if ($this->is_edit_mode()) {
add_filter('wpo_disable_webp_alter_html', '__return_true');
}
}
}

View File

@@ -0,0 +1,88 @@
<?php
if (!defined('ABSPATH')) {
die('No direct access allowed');
}
/**
* Adds compatibility for Polylang plugin.
*/
class WPO_Polylang_Compatibility {
/**
* Instance of this class
*
* @var WPO_Polylang_Compatibility|null
*/
protected static $instance = null;
/**
* Constructor.
*/
private function __construct() {
// Check if polylang is active
if (!class_exists('Polylang')) {
return;
}
// Add action hooks to delete cache for all languages
add_action('wpo_single_post_cache_deleted', array($this, 'polylang_delete_post_cache_for_all_languages'));
add_action('wpo_single_post_feed_cache_deleted', array($this, 'polylang_delete_post_feed_cache_for_all_languages'));
}
/**
* Returns singleton instance.
*
* @return WPO_Polylang_Compatibility
*/
public static function instance() {
if (null == self::$instance) {
self::$instance = new self;
}
return self::$instance;
}
/**
* Deletes cache files for all connected langauges for a post.
*
* @param int $deleted_post_id Post id whose cache file is already deleted.
*/
public function polylang_delete_post_cache_for_all_languages($deleted_post_id) {
// Check if polylang translation function is available
if (!function_exists('pll_get_post_translations')) {
return;
}
$translated_post_ids = pll_get_post_translations($deleted_post_id);
// Delete cache for each translated post
foreach ($translated_post_ids as $post_id) {
if ($deleted_post_id !== $post_id) {
WPO_Page_Cache::really_delete_single_post_cache($post_id);
}
}
}
/**
* Deletes cache files for all connected langauges for a post feed.
*
* @param int $deleted_post_id Post id whose cache file for feed is already deleted.
*/
public function polylang_delete_post_feed_cache_for_all_languages($deleted_post_id) {
// Check if polylang translation function is available
if (!function_exists('pll_get_post_translations')) {
return;
}
$translated_post_ids = pll_get_post_translations($deleted_post_id);
// Delete cache for each translated post
foreach ($translated_post_ids as $post_id) {
if ($deleted_post_id !== $post_id) {
WPO_Page_Cache::really_delete_post_feed_cache($post_id);
}
}
}
}