Как дублировать страницу Elementor из продукта WooCommerce в пользовательский тип сообщения без потери структуры?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как дублировать страницу Elementor из продукта WooCommerce в пользовательский тип сообщения без потери структуры?

Сообщение Anonymous »

Я создаю веб-сайт онлайн-приглашений, используя Elementor, WooCommerce и пользовательские типы сообщений. Вот проблема: я хочу продублировать страницу продукта WooCommerce (разработанную с помощью Elementor) в пользовательский тип сообщения (

Код: Выделить всё

edit-invitation
), когда заказ будет выполнен. Однако дублированный контент отображается внутри одного виджета «Текстовый редактор», и я хочу сохранить структуру Elementor (например, разделы, столбцы, виджеты).
Что Я пробовал
  • Пользовательский PHP-код для дублирования

    Я использую следующий код в function.php, чтобы вставить содержимое страницы продукта WooCommerce в edit-invitation пользовательский тип публикации при выполнении заказа:

    Код: Выделить всё

    function rudr_complete_for_status($order_id) {
    $order = wc_get_order($order_id);
    $order_key = $order->get_order_key();
    
    foreach ($order->get_items() as $item_id => $item) {
    $product = $item->get_product();
    
    if ($product) {
    $product_id = $product->get_id();
    $elementor_data = get_post_meta($product_id, '_elementor_data', true);
    
    wp_insert_post(array(
    'post_type'    => 'edit-invitation',
    'post_title'   => '#' . $order->get_id() . ' - ' . $order->get_billing_first_name(),
    'post_content' => \Elementor\Plugin::$instance->frontend->get_builder_content($product_id),
    'post_status'  => 'publish',
    'meta_input' => array(
    '_elementor_data'           => $elementor_data,
    '_elementor_edit_mode'      => 'builder',
    '_elementor_template_type'  => 'page',
    'product_id'                => $product_id,
    )
    ));
    }
    }
    }
    add_action('woocommerce_order_status_completed', 'rudr_complete_for_status');
    
  • Пользовательский шаблон для CPT Я создал собственный шаблон single-edit-invitation.php для отображения содержимого сообщений с приглашением на редактирование. Вот отрывок:
  • Постановка CSS Elementor в очередь Я поставил CSS Elementor в очередь для продукта WooCommerce, чтобы гарантировать правильное применение стилей в CPT. :

    Код: Выделить всё

    if (is_singular('edit-invitation')) {
    $product_id = get_post_meta($post->ID, 'product_id', true);
    
    if ($product_id) {
    $elementor_css_path = wp_upload_dir()["baseurl"] . '/elementor/css/post-' . $product_id . '.css';
    wp_enqueue_style('elementor-product-styles', $elementor_css_path);
    }
    }
    
    

Проблема

Несмотря на успешное дублирование содержимого и стилей Elementor, все виджеты со страницы Elementor объединяются в один Виджет «Текстовый редактор» в пользовательском типе сообщения (

Код: Выделить всё

edit-invitation).  Я хочу, чтобы структура Elementor (разделы, столбцы, виджеты) оставалась неизменной в дублируемом сообщении.
[h4][b]Что я ищу[/b][/h4]
Как я могу дублировать страницу продукта WooCommerce, разработанную Elementor, в пользовательский тип сообщения, сохраняя при этом структуру виджетов Elementor? Что-то мне не хватает при копировании или отображении _elementor_data
?

Дополнительная информация

  • Версия WordPress: 6.7.1
  • Версия WooCommerce : 9.5.1
  • Версия Elementor: 3.26.2
  • Пользовательский тип сообщения: edit-invitation
Вот скриншот:
single-edit-invitation.php
Изображение

Продукт Woocommerce:
Изображение

Вот админ, я разместил онлайн-приглашение в WooCommerce Заказ:
Изображение

А затем из функций rudr_complete_for_status, Я вставляю его в приглашение на редактирование пользовательского типа сообщения, как показано на изображении ниже:
Изображение

Я ожидал, что на странице продукта WooCommerce появится структура Elementor (разделы, столбцы и виджеты) в дублированном пользовательском типе сообщения (

Код: Выделить всё

edit-invitation
), как это было на исходной странице. Это включает в себя сохранение возможности редактировать публикацию в редакторе Elementor.

Подробнее здесь: https://stackoverflow.com/questions/793 ... t-type-wit
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»