Как вызвать Iframe из Iframe, используя jQuery в плагине Wordpress? - PullRequest
0 голосов
/ 03 января 2019

У меня есть приложение (плагин WordPress), вызываемое из iFrame в магазине Wordpress Woocommerce. Все работает отлично. Приложение генерирует товары и добавляет их в корзину, позволяя посетителю попасть в корзину и оплатить. Использование jQuery Modals.

В настоящее время я использую редирект, чтобы предоставить посетителю доступ к корзине. НО, я бы хотел, чтобы посетитель остался (вернулся) после оформления заказа. Идея заключается в том, что все взаимодействие с посетителями осуществляется с помощью модальных Таким образом, посетитель может продолжать использовать приложение и генерировать больше продуктов.

Это возможно? Есть ли лучший вариант?

Мой текущий код выглядит следующим образом:

function contact_woo_shop(orderfilename, urlAtts, counts, table){
var pid=0
jQuery.post(
            ts_woo.ajax_url, 
            {'action': 'do_ts_woo','order': orderfilename,             
   'board': urlAtts,'table': table},
            function(response) {
                  if(response.success){
                     pid = response.data;
                     console.log("do_ts_woo. SUCCESS response="+response.data);
  /* I WISH TO CANCEL THIS REDIRECT in favor of another MOdal with Iframe below*/
                     window.location.replace("https://orig-site.co.il/cart/?add-to-cart="+response.data);

                  } else {
                     console.log("do_ts_woo. FAILURE response="+response.data);
                  }
            }
).done(function(response) {
  console.log("DONE do_ts_woo. DONE response="+response.data);

   /* I wish to have the Modal & Iframe here */
  jQuery("#dialog").dialog({
        autoOpen: false,
        show: "fade",
        hide: "fade",
        modal: true,
        open: function (ev, ui) {
          jQuery('#myIframe').attr('src',"https://orig-site.co.il/cart/?add-to-cart="+pid);
        },
        height: 'auto',
        width: 'auto',
        resizable: true,
        title: 'Tilesim'
      });

     jQuery("#opener").click(function () {
        jQuery("#dialog").dialog("open");
        return false;
      })

 })
 .fail(function(msg) {
    alert( "error msg="+msg );
 })
 .always(function() {
   // alert( "finished" );
 });

}

Ответы [ 2 ]

0 голосов
/ 03 января 2019

Мне удалось открыть iFrame из iFrame, используя красивое и чистое решение для диалогового окна jquery iframe Как представляется, технически нет ограничений на эту последовательность. @ NickC Спасибо за вашу помощь!

Последнее замечание: до сих пор я пытался избежать iframe любой ценой.Это первый пример, когда приложение (SAAS) запускает клиентский код от имени клиента.Этот вариант использования отличается от запуска (немой) iFrame (some.html).

0 голосов
/ 03 января 2019
  1. Вы можете посмотреть на плагин, который уже выполняет это и посмотреть, как они это делают: [https://wordpress.org/plugins/woo-awesome-checkout-popup-form/][1]

  2. Или вы можете выполнить это, автоматически перенаправив пользователя на страницу выполненного заказа через определенное время. Например, подождите 1 секунду, а затем снова вернитесь на страницу магазина.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...