【问题标题】:How to send form data to woocommerce add_to_cart from custom template?如何从自定义模板将表单数据发送到 woocommerce add_to_cart?
【发布时间】:2021-06-30 06:27:38
【问题描述】:

我在名为 Pre-Checkout Customer Details 的主题文件夹中创建了一个新模板,其中有一个表格。页面看起来像:

    <?php /* Template Name: Pre-Checkout Customer Details */ ?>
<?php


if ( ! defined( 'ABSPATH' ) ) {

    exit; // Exit if accessed directly.
}

get_header(); ?>

<form action="/checkout/?">
    <input type="name" name="name">
    <input type="date" name="start_date">
    <input type="submit" name="Next">
</form>

<?php get_footer(); ?>

除此之外,此页面的 URL 将始终包含一些参数,例如

?add-to-cart=608&subscribe='weight_loss_plan'

看起来有点:

https://challengecenter-q8.com/pre-checkout-customer-details/?add-to-cart=608&subscribe=%D8%A8%D9%86%D8%A7%D8%A1%20%D8%B9%D8%B6%D9%84%20%D8%A3%D8%B4%D8%AA%D8%B1%D8%A7%D9%83%20%D8%A7%D8%B3%D8%A8%D9%88%D8%B9%D9%8A%D9%86%20%D9%88%D8%AC%D8%A8%D8%AA%D9%8A%D9%86

现在当我点击提交时,它显示找不到页面,而不是移动到购物车页面。另外,我希望表单详细信息显示在结帐页面上,例如:https://challengecenter-q8.com/checkout/?name='value 1'&amp;date='04-04-2021'

我怎样才能做到这一点?

提前谢谢你!

注意:“启用存档上的 AJAX 添加到购物车按钮”已启用,并且“成功添加后重定向到购物车页面”。已禁用。

【问题讨论】:

    标签: php html wordpress forms woocommerce


    【解决方案1】:

    我会考虑使用actions 来完成您想要做的事情。您可以使用 template_redirect 操作来检查您的 URL 参数并以编程方式将该项目添加到购物车,然后重定向到您想要的任何页面。

    您可以简单地为您当前所在的页面创建一个锚链接,该链接具有您需要的参数(在我的例子中是“atc”)。

    这是我用来执行此操作的一段代码。

    add_action('template_redirect', 'mks_add_to_cart');
    function mks_add_to_cart(){
      $pid = filter_input( INPUT_GET, 'atc', FILTER_VALIDATE_INT );
      if( !empty( $pid ) ) {
        global $woocommerce;
        $woocommerce->cart->add_to_cart( $pid );
        
        wp_redirect( site_url() . '/cart' );
        exit;
      }}
    

    为您的第二部分使用另一个操作以显示在结帐页面上。我经常使用Business Bloomer Visual Hook Guide 来引用我想要显示信息的位置。

    【讨论】:

    • 我尝试了这段代码并尝试查看 $woocommerce 对象,但没有显示任何内容。表格下面全是空白。 怎么了?
      ...
      cart->add_to_cart($pid);*/ wp_redirect(site_url().'/cart'); }} php get_footer(); ?>
    • 尝试将该代码添加到 functions.php 或使用代码 sn-p 插件。代码已经过测试并且可以运行,所以你的实现有问题。
    猜你喜欢
    • 1970-01-01
    • 2012-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多