【问题标题】:Temporary redirect prevents getting $_POST array临时重定向阻止获取 $_POST 数组
【发布时间】:2013-02-04 13:35:49
【问题描述】:

我正在发送来自 woocommerce 插件的表单。 我调整了thankyou.php 页面并添加了电子邮件发送功能。 但是 $_POST 数组是空的。

使用 Chrome 开发工具检查我发现发布页面有临时重定向:

重定向是在哪里发起的? 有没有办法在 $_POST 数组重定向之前捕获它?

相关表格代码:(/woocommerce/templates/checkout/form-checkout.php

  <form enctype="multipart/form-data" name="checkout" method="post"  id="checky" class="checky" action="http://pharma-job.shared6.lighthost.co.il/checkout/order-received">
<input type="hidden" name="admin_email" value="<?php echo get_option('admin_email'); ?>" />
    <?php if ( sizeof( $woocommerce_checkout->checkout_fields ) > 0 ) : ?>

        <?php do_action( 'woocommerce_checkout_before_customer_details'); ?>

        <div class="col2-set" id="customer_details">

            <div class="col-1">

                <?php do_action('woocommerce_checkout_billing'); ?>

            </div>

            <div class="col-2">

                <?php do_action('woocommerce_checkout_shipping'); ?>

            </div>

        </div>
        <label for="cv_file">העלה קו"ח: </label>
  <input type="file" name="cv_file"> 
        <?php do_action( 'woocommerce_checkout_after_customer_details'); ?>

        <h3 id="order_review_heading"><?php _e('Your order', 'woocommerce'); ?></h3>

    <?php endif; ?>

    <?php do_action('woocommerce_checkout_order_review'); ?>

</form>

更新:我查看了生成的 HTML,发现似乎是确凿的证据:

<input type="hidden" name="_wp_http_referer" value="/checkout/" />

但是这个重定向背后的机制是什么?如何绕过它?

【问题讨论】:

  • 尝试注释掉 do_action 的东西,直到找到正确的位置!

标签: php wordpress redirect woocommerce


【解决方案1】:

您是否尝试将您的 $_POST 数据设置为 $_SESSION 数据? $_SESSION 值将一直设置,直到您终止会话。

【讨论】:

  • 我一开始就没有得到 $_POST 数据。如何将其保存为 $_SESSION?
猜你喜欢
  • 2023-03-04
  • 1970-01-01
  • 1970-01-01
  • 2012-08-08
  • 2018-12-23
  • 1970-01-01
  • 2012-05-10
  • 2017-12-17
  • 1970-01-01
相关资源
最近更新 更多