2017-09-26 1 views
0

J'essaie de faire un plugin de redirection sur jquery. Il faut rediriger deux fois, d'abord à un "merci pour l'achat, vous allez être redirigé maintenant" et ensuite à une page externe où vous avez fait l'achat proprement dit. Tout fonctionne correctement lorsque je redirige mais je ne peux pas obtenir l'item_id ou le montant du produit que je publie. Est une page wordpress et im affichant un produit à afficher dans une page externe où vous avez fait l'achat réel. Ceci est mon code qui vous redirige vers une page "/ succès" après avoir cliqué sur le bouton "continuer", après l'affichage de la page de succès, il affichera le message pendant 5 secondes, puis il vous redirigera vers la page d'achat actuelle :get item_id avec jquery pour publier sur une page externe

function addToListAndRedirect(item_id){ 
var email = jQuery("[name='your-email']").val(); 
var amount = jQuery("[name='vinbrevet-contact-amount']").val(); 
var subscription = { 
    ListIds: [ 
     "beeb2f48-5265-443e-960f-4f995d8c2942" 
    ], 

    ConfirmationIssue: { IssueId: "cd081857-4f30-4da1-ab5c-a7883f62d99c" }, 

    Contact: { 
     Email: email 
    } 
} 
window.location.href = "http://vinbrevet.se/success?items="+ item_id + ":" + amount; } 

le code/page succès:

function redirectToExternal(item_id, amount) { 
var item_id; 
var amount = jQuery("[name='vinbrevet-contact-amount']").val();; 
    jQuery.post("http://ui.admlo.se/Api/Subscriptions/c03a4119-f6a8-4d86-b34f-f16177ec7912").always(function() { 
    window.location.replace("https://www.systembolaget.se/dryckeslista?items=" + item_id+":" + amount); 
}); 
    } 
    setTimeout("redirectToExternal()", 5000); 

Je comprends que ce devrait être une meilleure façon ... mais iis il possible d'obtenir le item_id et le montant de la barre de navigateur? ou comment devrais-je obtenir l'item_id et le montant après la première redirection? Dans la page/succès, je peux afficher l'item_id et le montant, mais dans la deuxième redirection, je suis indéfini: undefined.

exemple URL:

http://vinbrevet.se/success/?items=7487101:1 (la page de succès).

https://www.systembolaget.se/delat?items=undefined:undefined (la redirection après page de succès)

+0

double possible de [Comment obtenir la valeur des paramètres GET?] (Https://stackoverflow.com/questions/979975/how-to-get-the -value-from-the-get-parameters) – CBroe

+0

Im checkin maintenant :) –

Répondre

0

J'ai trouvé un moyen beaucoup plus facile de le faire. Pas la même solution mais je pense que c'est mieux alors je n'ai pas besoin de rediriger deux fois. Voici le code, j'espère que ça aidera quelqu'un un jour. Le code doit avoir des améliorations. Beaucoup de improvments, mais cela fonctionne :)

function addToListAndRedirect(item_id){ 
var email = jQuery("[name='your-email']").val(); 
var amount = jQuery("[name='xxxxxx-contact-amount']").val(); 
var subscription = { 
    ListIds: [ 
     "xxxxx-5265-xxxx-960f-4f995d8c2942" 
    ], 

    ConfirmationIssue: { IssueId: "xxxxxx-4f30-4da1-ab5c-a7883f62d99c" }, 
    SubscriptionConfirmedUrl: "http://xxxxxxx.se/success/", 

    Contact: { 
     Email: email 
    } 
} 
setTimeout(function() { 
    jQuery('#av_section_1').css('background-color', '#fff'); 

    jQuery('#av_section_1').html('<div style="padding: 30px; border: 1px solid #b1b2b3; margin: 50px; text-align: center; border-raius: 6px; background-color: #eee;"><h1>You are being redirected!</h1><p>Here is going to be a good text</p><br><button id="toThePage" class="btn button">Link</button></div>'); },4000); 
    jQuery.post("http://ui.xxxx.se/Api/Subscriptions/xxxxxx-f6a8-4d86-b34f-f16177ec7912", subscription).always(function() { 

    window.location.replace("https://www.xxxxxx.se/xxxxxxx?items="+item_id+":" + amount); 
}); }