我正在开发一个插件,但我被困在了某些事情上。
我想在提交时将产品添加到购物车。
起初我收到一个错误,即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/
你只需要这样使用:
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);
}
}