WordPress перенаправление страницы с iframe на страницу PayPal - PullRequest
0 голосов
/ 31 мая 2011

У меня есть страница Wordpress с интегрированным iframe, которая содержит скрипт календаря бронирования, как показано ниже.

<div class="booking-calendar">
                    <iframe id="frame1" name="frame1" src="http://www.xxxxxx.co.uk/booking/frontend/" width="100%" height="450px" frameborder="0" scrolling="auto"></iframe>

                    </div>

Демо для скрипта в этом iframe можно найти здесь: http://www.phpjabbers.com/hotels-booking-system/ Что я хочу сделать, так это как только пользователь нажмет на кнопку «Забронировать сейчас», это перенаправить их на страницу Paypal. На данный момент настроено так, что им нужно нажать кнопку «Оплатить сейчас», чтобы перейти на эту страницу Paypal, где они делают платеж. Код для этой кнопки Pay Now выглядит следующим образом:

<?php
    if ($deposit > 0) {
        if ($_REQUEST['payment_type'] == 'paypal') {
            ?>
            <form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
                <input type="hidden" name="cmd" value="_xclick">
                <input type="hidden" name="business" value="<?php echo $SETTINGS_DB["paypal_address"]; ?>">
                <input type="hidden" name="item_name" value="Booking confirmation - <?php echo $BookingID; ?>">
                <input type="hidden" name="item_number" value="">
                <input type="hidden" name="amount" value="<?php echo number_format($deposit, 2, '.', ''); ?>">
                <input type="hidden" name="no_shipping" value="1">
                <input type="hidden" name="no_note" value="1">
                <input type="hidden" name="currency_code" value="<?php echo $Currencies[$SETTINGS_DB["currency"]]; ?>">
                <input type="hidden" name="lc" value="US">
                <input type="hidden" name="bn" value="PP-BuyNowBF">
                <input type="hidden" name="return" value="<?php echo $SETTINGS_DB["thankyou_page"]; ?>">
                <input name="submit" type='submit' value='PAY NOW' >
            </form>
            <?php
                header ("https://www.paypal.com/cgi-bin/webscr");
                exit;
            ?>

Мне было интересно, как я могу сделать перенаправление, чтобы пользователь автоматически переходил на страницу Paypal, не нажимая кнопку «Оплатить сейчас»? Если кто-то может направить меня в правильном направлении, это было бы здорово. Я понимаю, что скрытые значения должны быть перенесены на страницу Paypal, я просто не знаю, как сделать так, чтобы они были перенесены. Есть идеи? Любые советы будут очень признательны.

1 Ответ

0 голосов
/ 02 июня 2011

Я пытался разобраться в этом сам, что я и сделал до сих пор: так как я хочу, чтобы перенаправление на PayPal происходило после того, как пользователь нажимает кнопку «Книга», я скопировал скрытые поля, которые являются частью формы Pay now, в часть с Кнопка Book -> часть последнего бита кода:

($deposit > 0) { 

        <input type="hidden" name="cmd" value="_xclick">
                <input type="hidden" name="business" value="<?php echo $SETTINGS_DB["paypal_address"]; ?>">
                <input type="hidden" name="item_name" value="Booking confirmation - <?php echo $BookingID; ?>">
                <input type="hidden" name="item_number" value="">
                <input type="hidden" name="amount" value="<?php echo number_format($deposit, 2, '.', ''); ?>">
                <input type="hidden" name="no_shipping" value="1">
                <input type="hidden" name="no_note" value="1">
                <input type="hidden" name="currency_code" value="<?php echo $Currencies[$SETTINGS_DB["currency"]]; ?>">
                <input type="hidden" name="lc" value="US">
                <input type="hidden" name="bn" value="PP-BuyNowBF">
                <input type="hidden" name="return" value="<?php echo $SETTINGS_DB["thankyou_page"]; ?>">
    <?php   }
?>
        <div style="float:left"><input type="submit" value="Book"></div>
        <div style="clear:both"></div>

</form> 

После того, как пользователь нажмет кнопку «Книга», код проверит, был ли он отправлен с этим:

elseif ($_REQUEST["ac"]=='save_booking') {

, а затем детали бронирования (имя, телефон, электронная почта, ..) будут вставлены в базу данных следующим образом:

$sql = "INSERT INTO ".$TABLES["bookings"]." SET
                  `from` = '".Date2MySQL(SaveToDB($_REQUEST["from"]))."',
                  `to` = '".Date2MySQL(SaveToDB($_REQUEST["to"]))."',
                  `name` = '".SaveToDB($_REQUEST["name"])."',
                  `email` = '".SaveToDB($_REQUEST["email"])."',
                  `phone` = '".SaveToDB($_REQUEST["phone"])."',
                  `notes` = '".SaveToDB($_REQUEST["notes"])."',
                  `people` = '".SaveToDB($_REQUEST["people"])."',
                  `payment_type` = '".SaveToDB($_REQUEST["payment_type"])."',
                  `dt` = now()";
            $sql_result = mysql_query ($sql, $connection ) or die ('request "Could not execute SQL query" '.$sql.mysql_error());
            $BookingID = mysql_insert_id();

            $total_price = 0;
            $sql = "SELECT * FROM ".$TABLES["rooms"]." ORDER BY id DESC";
            $sql_result = mysql_query ($sql, $connection ) or die ('request "Could not execute SQL query" '.$sql);
            while ($row = mysql_fetch_assoc($sql_result)) {
                if ($_REQUEST["room_".$row["id"]]>0) {
                    $sql = "INSERT INTO ".$TABLES["bookings_rooms"]." SET
                          `booking_id` = '".$BookingID."',
                          `room_id` = '".$row["id"]."',
                          `quantity` = '".SaveToDB($_REQUEST["room_".$row["id"]])."'";
                    $sql_resultT = mysql_query ($sql, $connection ) or die ('request "Could not execute SQL query" '.$sql.mysql_error());
                    $total_price = $total_price + $_REQUEST["room_price_".$row["id"]]*$_REQUEST["room_".$row["id"]];
                };
            };

            $sql = "UPDATE ".$TABLES["bookings"]." SET
                  `price` = '".$total_price."'
                  WHERE id = '".$BookingID."'";
            $sql_result = mysql_query ($sql, $connection ) or die ('request "Could not execute SQL query" '.$sql.mysql_error());

            $deposit = $SETTINGS_DB["payment_deposit"];


            $sql = "SELECT * FROM ".$TABLES["bookings"]." WHERE id='".$BookingID."'";
            $sql_result = mysql_query ($sql, $connection ) or die ('request "Could not execute SQL query" '.$sql);
            $booking = mysql_fetch_assoc($sql_result);

            $sql = "SELECT * FROM `".$TABLES["bookings_rooms"]."` INNER JOIN ".$TABLES["rooms"]." ON ".$TABLES["rooms"].".id = ".$TABLES["bookings_rooms"].".room_id WHERE `".$TABLES["bookings_rooms"]."`.booking_id='".$BookingID."'";
            $sql_resultP = mysql_query ($sql, $connection ) or die ('request "Could not execute SQL query" '.$sql);
            while ($rooms = mysql_fetch_assoc($sql_resultP)) {
                 $roomsemail .= $rooms["quantity"]." x ".$rooms["room_type"].", ";
            };

            $message = ReadFromDB($SETTINGS_DB["email_message"]);
            $search_tokens=array("{name}","{email}","{phone}","{from_date}","{to_date}","{price}","{rooms}");
            $replace_tokens=array(ReadFromDB($booking["name"]),ReadFromDB($booking["email"]),ReadFromDB($booking["phone"]),MySQL2Date(ReadFromDB($booking["from"])),MySQL2Date(ReadFromDB($booking["to"])),formatCurrencyExport($booking["price"]),$roomsemail);
            $message=str_replace($search_tokens,$replace_tokens,$message);


            $mailheader    = "From: ".$SETTINGS_DB["admin_email"]."\r\n";
            $mailheader   .= "Reply-To: ".$SETTINGS_DB["admin_email"]."\r\n";
            $mailheader   .= "Content-type: text/plain; charset=UTF-8\r\n";

            mail($booking["email"], $SETTINGS_DB["email_subject"], $message, $mailheader);
            if ($SETTINGS_DB["admin_email"]) {
                mail($SETTINGS_DB["admin_email"], $SETTINGS_DB["email_subject"], $message, $mailheader);

            }

После того, как данные были вставлены в базу данных, я хочу, чтобы пользователь автоматически перешел на страницу оплаты PayPal, поэтому я вставил этот код после кода выше:

header ("https://www.paypal.com/cgi-bin/webscr");
                exit;
?>

Теперь, когда я нажимаю кнопку «Книга», ничего не происходит, хорошо, форма исчезает, поэтому у меня просто есть текст инструкции на странице, но мы не перенаправлены на страницу PayPal. Может ли кто-нибудь, пожалуйста, указать мне правильное направление?

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