first commit
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
<?php
|
||||
|
||||
namespace Elementor\Modules\FloatingButtons\Classes\Conditions;
|
||||
|
||||
if ( ! defined( 'ABSPATH' ) ) {
|
||||
exit; // Exit if accessed directly.
|
||||
}
|
||||
|
||||
class Conditions_Cache {
|
||||
|
||||
const CONDITIONS_CACHE_META_KEY = 'elementor_pro_theme_builder_conditions';
|
||||
|
||||
const CONDITION_TYPE = 'floating_buttons';
|
||||
|
||||
public function remove_from_cache( int $post_id ): void {
|
||||
$conditions = $this->get_conditions();
|
||||
|
||||
if ( isset( $conditions[ self::CONDITION_TYPE ][ $post_id ] ) ) {
|
||||
unset( $conditions[ self::CONDITION_TYPE ][ $post_id ] );
|
||||
|
||||
if ( empty( $conditions[ self::CONDITION_TYPE ] ) ) {
|
||||
unset( $conditions[ self::CONDITION_TYPE ] );
|
||||
}
|
||||
|
||||
$this->update_conditions( $conditions );
|
||||
}
|
||||
}
|
||||
|
||||
public function add_to_cache( int $post_id, array $condition_rules = [ 'include/general' ] ): void {
|
||||
$conditions = $this->get_conditions();
|
||||
|
||||
if ( ! isset( $conditions[ self::CONDITION_TYPE ] ) ) {
|
||||
$conditions[ self::CONDITION_TYPE ] = [];
|
||||
}
|
||||
|
||||
$conditions[ self::CONDITION_TYPE ][ $post_id ] = $condition_rules;
|
||||
|
||||
$this->update_conditions( $conditions );
|
||||
}
|
||||
|
||||
private function get_conditions(): array {
|
||||
return get_option( self::CONDITIONS_CACHE_META_KEY, [] );
|
||||
}
|
||||
|
||||
private function update_conditions( array $conditions ): void {
|
||||
update_option( self::CONDITIONS_CACHE_META_KEY, $conditions );
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user