File "AdminBarService.php"
Full path: C:/Inetpub/vhosts/drshti.com/httpdocs/wp-content/plugins/depicter/app/src/WordPress/AdminBarService.php
File
size: 4.09 B (4.09 KB bytes)
MIME-type: text/x-php
Charset: utf-8
Download Open Edit Advanced Editor &nnbsp; Back
<?php
namespace Depicter\WordPress;
use Averta\Core\Utility\Arr;
use Averta\WordPress\Utility\JSON;
use Elementor\Plugin;
class AdminBarService
{
protected array $documentIDs = [];
public function register(){
add_action('admin_bar_menu', [ $this, 'init'], 99);
}
public function init( $wpAdminBar ) {
$conditionalDocumentIDs = \Depicter::document()->getConditionalDocumentIDs();
if ( ! empty( $conditionalDocumentIDs ) ) {
$this->documentIDs = Arr::merge( $this->documentIDs, $conditionalDocumentIDs );
}
$this->checkForElementorWidget();
$this->checkForGutenbergWidget();
$this->checkForDiviWidget();
$this->checkForBeaverWidget();
$this->documentIDs = array_unique( $this->documentIDs );
if ( !empty( $this->documentIDs ) ) {
$wpAdminBar->add_node([
'id' => 'depicter-menu',
'title' => __( 'Depicter', 'depicter' ),
'href' => '#',
]);
foreach ( $this->documentIDs as $documentID ) {
$wpAdminBar->add_node([
'id' => 'depicter-submenu-' . $documentID,
'title' => \Depicter::documentRepository()->getFieldValue( $documentID, 'name' ),
'parent' => 'depicter-menu',
'href' => admin_url('post.php?document=' . $documentID . '&action=depicter')
]);
}
}
}
public function checkForElementorWidget(){
if ( ! class_exists('\Elementor\Plugin') ) {
return;
}
if (!is_page() && !is_singular()) {
return;
}
$document = Plugin::$instance->documents->get( get_the_ID() );
if ( ! $document || ! $document->is_built_with_elementor() ) {
return;
}
$elementor_data = get_post_meta( get_the_ID(), '_elementor_data', true );
$elementor_data = JSON::isJson( $elementor_data ) ? $elementor_data : JSON::encode( $elementor_data );
preg_match_all( '/"slider_id":"#(\d+)"/', $elementor_data, $sliderIDs, PREG_SET_ORDER );
if ( ! empty( $sliderIDs ) ) {
foreach( $sliderIDs as $sliderID ) {
if ( !empty( $sliderID[1] ) ) {
$this->documentIDs[] = $sliderID[1];
}
}
}
preg_match_all( '/\[depciter id="(\d+)"/', $elementor_data, $sliders, PREG_SET_ORDER );
if ( ! empty( $sliders ) ) {
foreach ( $sliders as $slider ) {
if ( ! empty( $slider[1] ) ) {
$this->documentIDs[] = $slider[1];
}
}
}
}
public function checkForGutenbergWidget(){
if (!is_page() && !is_singular()) {
return;
}
$post_content = get_post( get_the_ID() )->post_content;
if (strpos($post_content, 'wp:depicter/slider') === false && strpos($post_content, '[depicter id="') === false) {
return;
}
preg_match_all( '/wp:depicter\/slider \{"id":(\d+)\}/', $post_content, $sliders, PREG_SET_ORDER );
if ( ! empty( $sliders ) ) {
foreach ( $sliders as $slider ) {
if ( ! empty( $slider[1] ) ) {
$this->documentIDs[] = $slider[1];
}
}
}
preg_match_all( '/\[depciter id="(\d+)"/', $post_content, $sliders, PREG_SET_ORDER );
if ( ! empty( $sliders ) ) {
foreach ( $sliders as $slider ) {
if ( ! empty( $slider[1] ) ) {
$this->documentIDs[] = $slider[1];
}
}
}
}
public function checkForBeaverWidget() {
if (!is_page() && !is_singular()) {
return;
}
$flbuilder_data = get_post_meta( get_the_ID(), '_fl_builder_data', true);
$flbuilder_data = is_array( $flbuilder_data ) ? maybe_serialize( $flbuilder_data ) : $flbuilder_data;
preg_match_all( '/document_id";s:\d+:"(\d+)"/', $flbuilder_data, $sliderIDs, PREG_SET_ORDER );
foreach( $sliderIDs as $key => $sliderID ) {
if ( !empty( $sliderID[1] ) ) {
$this->documentIDs[] = $sliderID[1];
}
}
}
public function checkForDiviWidget(){
if ( ! function_exists( 'et_core_is_builder_used_on_current_request' ) ) {
return;
}
if (!is_page() && !is_singular() && ! et_core_is_builder_used_on_current_request()) {
return;
}
$post_content = get_post( get_the_ID() )->post_content;
preg_match_all( '/document_id="(\d+)"/', $post_content, $sliderIDs, PREG_SET_ORDER );
foreach( $sliderIDs as $key => $sliderID ) {
if ( !empty( $sliderID[1] ) ) {
$this->documentIDs[] = $sliderID[1];
}
}
}
}