=' ) ) {
add_filter( 'get_post_metadata', [ $this, 'maybeDisableWpBakeryMetaTags' ], 10, 3 );
}
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, 'addNavbarControls' ] );
add_filter( 'vc_nav_controls', [ $this, 'addNavbarControls' ] );
}
/**
* Maybe disable WP Bakery meta tags.
*
* @since 4.7.1
*
* @param mixed $value The value of the meta.
* @param int $objectId The object ID.
* @param string $metaKey The meta key.
* @return mixed The value of the meta.
*/
public function maybeDisableWpBakeryMetaTags( $value, $objectId, $metaKey ) {
if ( is_singular() && '_wpb_post_custom_seo_settings' === $metaKey ) {
return null;
}
return $value;
}
/**
* Add AIOSEO controls to the WPBakery navbar.
*
* @since 4.5.2
*
* @param array $controlList The control list.
* @return array The control list.
*/
public function addNavbarControls( $controlList ) {
if ( ! $controlList ) {
return $controlList;
}
remove_filter( 'vc_nav_front_controls', [ $this, 'addNavbarControls' ] );
remove_filter( 'vc_nav_controls', [ $this, 'addNavbarControls' ] );
$controlList[] = [
'aioseo',
'
'
];
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/', (string) $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( sanitize_text_field( 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 mixed $content The raw content.
* @return string The processed content.
*/
public function processContent( $postId, $content = null ) {
if ( method_exists( '\WPBMap', 'addAllMappedShortcodes' ) ) {
\WPBMap::addAllMappedShortcodes();
}
return parent::processContent( $postId, $content ?? '' );
}
}