get_data();
wp_enqueue_style( 'avada_admin_css', trailingslashit( Avada::$template_dir_url ) . 'assets/admin/css/avada-admin.css', [], AVADA_VERSION );
wp_register_script( 'fuse-script', FUSION_LIBRARY_URL . '/assets/min/js/library/fuse.js', [], AVADA_VERSION, true );
wp_enqueue_script(
'avada-studio',
Avada::$template_dir_url . '/assets/admin/js/awb-studio.js',
[ 'jquery', 'fuse-script', 'imagesloaded' ],
FUSION_BUILDER_VERSION,
false
);
// Studio preview.
wp_enqueue_script(
'awb-studio-preview-admin',
trailingslashit( Fusion_Scripts::$js_folder_url ) . 'general/awb-studio-preview-admin.js',
[ 'jquery' ],
FUSION_BUILDER_VERSION,
false
);
wp_localize_script( 'avada-studio', 'fusionBuilderText', fusion_app_textdomain_strings() );
wp_localize_script( 'avada-studio', 'awbStudioData', (array) $data );
?>
registration->should_show( 'studio' ) ) : ?>
' . esc_attr__( 'Product Registration', 'fusion-builder' ) . '' ); ?>
check_nonce();
if ( is_multisite() && is_main_site() ) {
$sites = get_sites();
foreach ( $sites as $site ) {
switch_to_blog( $site->blog_id );
delete_transient( 'avada_studio' );
restore_current_blog();
}
return;
}
delete_transient( 'avada_studio' );
echo wp_json_encode( AWB_Studio()->get_data() );
die();
}
/**
* Import Studio content from Admin page.
*/
public function ajax_import() {
$this->check_nonce();
$data_type = sanitize_text_field( wp_unslash( $_GET['data']['dataType'] ) ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended, WordPress.Security.ValidatedSanitizedInput.InputNotValidated
$data_id = sanitize_text_field( wp_unslash( $_GET['data']['dataID'] ) ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended, WordPress.Security.ValidatedSanitizedInput.InputNotValidated
if ( ! $data_type || ! $data_id || ! $this->can_import( $data_type ) ) {
echo wp_json_encode( [] );
die();
}
// Set import options from $_REQUEST global array.
AWB_Studio_Import()->set_import_options_from_request();
$post_details = AWB_Studio_Import()->import_post(
[
'post_id' => $data_id,
'post_type' => $data_type,
],
[],
false
);
echo wp_json_encode( $post_details );
die();
}
/**
* Checks if current logged in use can import item.
*
* @access public
* @since 3.9
* @param string $type The item type.
* @return bool
*/
public function can_import( $type ) {
$can_import = true;
switch ( $type ) {
case 'fusion_template':
if ( ! current_user_can( apply_filters( 'awb_role_manager_access_capability', 'edit_posts', 'avada_library' ) ) ) {
$can_import = false;
}
break;
case 'fusion_tb_section':
if ( ! current_user_can( apply_filters( 'awb_role_manager_access_capability', 'manage_options', 'fusion_tb_section' ) ) ) {
$can_import = false;
}
break;
case 'fusion_element':
if ( ! current_user_can( apply_filters( 'awb_role_manager_access_capability', 'edit_posts', 'avada_library' ) ) ) {
$can_import = false;
}
break;
case 'fusion_icons':
if ( ! current_user_can( apply_filters( 'awb_role_manager_access_capability', 'edit_posts', 'fusion_icons' ) ) ) {
$can_import = false;
}
break;
case 'fusion_form':
if ( false === Fusion_Form_Builder::is_enabled() || ! current_user_can( apply_filters( 'awb_role_manager_access_capability', 'edit_posts', 'fusion_form' ) ) ) {
$can_import = false;
}
break;
case 'awb_off_canvas':
if ( false === AWB_Off_Canvas::is_enabled() || ! current_user_can( apply_filters( 'awb_role_manager_access_capability', 'edit_posts', 'awb_off_canvas' ) ) ) {
$can_import = false;
}
break;
}
return $can_import;
}
/**
* Import Studio content media from Admin page.
*/
public function ajax_import_media() {
$this->check_nonce();
$post_data = wp_unslash( $_POST['data']['postData'] ); // phpcs:ignore WordPress.Security.NonceVerification.Missing, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized, WordPress.Security.ValidatedSanitizedInput.InputNotValidated
// Dont import content if post was already imported.
if ( 'false' === $post_data['was_imported'] ) {
$post_id = absint( $post_data['post_id'] );
$media_key = sanitize_text_field( wp_unslash( $_POST['data']['mediaImportKey'] ) ); // phpcs:ignore WordPress.Security.NonceVerification.Missing, WordPress.Security.ValidatedSanitizedInput.InputNotValidated
$overwrite = isset( $post_data['mapping'] ) ? $post_data['mapping'] : [];
// We need it for post_content.
$post = get_post( $post_id );
// Set import options from $_REQUEST global array.
AWB_Studio_Import()->set_import_options_from_request();
// Import assets.
AWB_Studio_Import()->import_post_media( $post_id, $post->post_content, [ $media_key => $post_data['avada_media'][ $media_key ] ], $overwrite );
}
echo wp_json_encode( $post_data );
die();
}
}