118 lines
2.8 KiB
PHP
118 lines
2.8 KiB
PHP
<?php
|
|
namespace AIOSEO\Plugin\Common\Standalone\PageBuilders;
|
|
|
|
// Exit if accessed directly.
|
|
if ( ! defined( 'ABSPATH' ) ) {
|
|
exit;
|
|
}
|
|
|
|
/**
|
|
* Integrate our SEO Panel with WPBakery Page Builder.
|
|
*
|
|
* @since 4.5.2
|
|
*/
|
|
class WPBakery extends Base {
|
|
/**
|
|
* The plugin files.
|
|
*
|
|
* @since 4.5.2
|
|
*
|
|
* @var array
|
|
*/
|
|
public $plugins = [
|
|
'js_composer/js_composer.php'
|
|
];
|
|
|
|
/**
|
|
* The integration slug.
|
|
*
|
|
* @since 4.5.2
|
|
*
|
|
* @var string
|
|
*/
|
|
public $integrationSlug = 'wpbakery';
|
|
|
|
/**
|
|
* Init the integration.
|
|
*
|
|
* @since 4.5.2
|
|
*
|
|
* @return void
|
|
*/
|
|
public function init() {
|
|
if ( ! aioseo()->postSettings->canAddPostSettingsMetabox( get_post_type( $this->getPostId() ) ) ) {
|
|
return;
|
|
}
|
|
|
|
add_action( 'vc_frontend_editor_enqueue_js_css', [ $this, 'enqueue' ] );
|
|
add_action( 'vc_backend_editor_enqueue_js_css', [ $this, 'enqueue' ] );
|
|
|
|
add_filter( 'vc_nav_front_controls', [ $this, 'addNavbarCotnrols' ] );
|
|
add_filter( 'vc_nav_controls', [ $this, 'addNavbarCotnrols' ] );
|
|
}
|
|
|
|
public function addNavbarCotnrols( $controlList ) {
|
|
$controlList[] = [
|
|
'aioseo',
|
|
'<li class="vc_show-mobile"><div id="aioseo-wpbakery" style="height: 100%;"></div></li>'
|
|
];
|
|
|
|
return $controlList;
|
|
}
|
|
|
|
/**
|
|
* Returns whether or not the given Post ID was built with WPBakery.
|
|
*
|
|
* @since 4.5.2
|
|
*
|
|
* @param int $postId The Post ID.
|
|
* @return boolean Whether or not the Post was built with WPBakery.
|
|
*/
|
|
public function isBuiltWith( $postId ) {
|
|
$postObj = get_post( $postId );
|
|
if ( ! empty( $postObj ) && preg_match( '/vc_row/', $postObj->post_content ) ) {
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
* Returns whether should or not limit the modified date.
|
|
*
|
|
* @since 4.5.2
|
|
*
|
|
* @param int $postId The Post ID.
|
|
* @return boolean Whether or not sholud limit the modified date.
|
|
*/
|
|
public function limitModifiedDate( $postId ) {
|
|
// This method is supposed to be used in the `saveAjaxFe` action.
|
|
if ( empty( $_REQUEST['_vcnonce'] ) || ! wp_verify_nonce( wp_unslash( $_REQUEST['_vcnonce'] ), 'vc-nonce-vc-admin-nonce' ) ) {
|
|
return false;
|
|
}
|
|
|
|
$editorPostId = ! empty( $_REQUEST['post_id'] ) ? intval( $_REQUEST['post_id'] ) : 0;
|
|
if ( $editorPostId !== $postId ) {
|
|
return false;
|
|
}
|
|
|
|
return ! empty( $_REQUEST['aioseo_limit_modified_date'] ) && (bool) $_REQUEST['aioseo_limit_modified_date'];
|
|
}
|
|
|
|
/**
|
|
* Returns the processed page builder content.
|
|
*
|
|
* @since 4.5.2
|
|
*
|
|
* @param int $postId The post id.
|
|
* @param string $content The raw content.
|
|
* @return string The processed content.
|
|
*/
|
|
public function processContent( $postId, $content = '' ) {
|
|
if ( method_exists( '\WPBMap', 'addAllMappedShortcodes' ) ) {
|
|
\WPBMap::addAllMappedShortcodes();
|
|
}
|
|
|
|
return parent::processContent( $postId, $content );
|
|
}
|
|
} |