【问题标题】:Add product to cart with form submit after woocommerce initialized在 woocommerce 初始化后使用表单提交将产品添加到购物车
【发布时间】:2016-03-14 10:02:17
【问题描述】:

我正在开发一个插件,但我遇到了一些问题。
我想在提交时将产品添加到购物车。
起初我收到一个错误,说 WP 没有加载。所以我修复了这个问题

add_action('wp_loaded', 'wp_after_load');

这是我的代码:

HTML

<form method="POST" enctype="multipart/form-data">
    <button type="submit" class="btn btn-primary" name="ws-add-to-cart">Add to Cart</button>
</form>

PHP

if (isset($_REQUEST['ws-add-to-cart'])) {

    add_action('wp_loaded', 'wp_after_load');
}

function wp_after_load() {
    add_action( 'init', 'add_product_to_cart' );

}
function add_product_to_cart() {
        echo '<script>alert("dsa");</script>';
        global $woocommerce;
        global $product;
        $product_ident = $product->id;
        $product_id = $product_ident;


        $woocommerce->cart->add_to_cart($product_id);
}

问题是,什么都没有发生。
我的猜测是add_action( 'init', 'add_product_to_cart' ); 卡在了某个东西上,或者这不是正确使用的钩子。
我正在使用这个钩子在 woocommerce 加载完成后等待。
但我不确定这是否符合我的想法。
那么我在这里做错了什么?我从 WooThemes 获得了代码:
https://docs.woothemes.com/document/automatically-add-product-to-cart-on-visit/

【问题讨论】:

    标签: php wordpress woocommerce


    【解决方案1】:

    你只需要这样使用:

    if (isset($_REQUEST['ws-add-to-cart'])) {
        add_action( 'init', 'add_product_to_cart' );
        function add_product_to_cart() {
            echo '<script>alert("dsa");</script>';
            global $woocommerce;
            global $product;
            $product_ident = 175(your product id);
            $product_id = $product_ident;
            $woocommerce->cart->add_to_cart($product_id);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2014-11-21
      • 2021-08-22
      • 1970-01-01
      • 2015-05-03
      • 2013-03-10
      • 1970-01-01
      • 2013-02-07
      • 2015-03-31
      • 1970-01-01
      相关资源
      最近更新 更多