web-dev-qa-db-ja.com

wordpress woocommerceでカスタム「カートに追加」を作成

Woocommerceテンプレートの外にあるページで特定の商品を取得し、[カートに追加]ボタンを追加する必要があります。私はコードを見て、woocommerceがこのようにそれをしているのを見ました、

<a href="/?product_cat=icecream&amp;add-to-cart=77" rel="nofollow" data-product_id="77" data-product_sku="" class="button add_to_cart_button product_type_simple">Add to cart</a>

このように、product_idとすべてを自分のニーズに合うように変更しようとしました。

<a href="/?product_cat=icecream&amp;add-to-cart=<?php echo $id; ?>" rel="nofollow" data-product_id="<?php echo $id; ?>" data-product_sku="" class="button add_to_cart_button product_type_simple">
    <img src="<?php echo get_bloginfo('template_directory'); ?>/images/add_to_cart.png" alt="Add to cart" />
</a>

しかし、何らかの理由で保存されません(カートページに入ると空になります)。アイテムが追加されたときに近くにある「カートを表示」ボタンもなくそうとしています。誰かがそのボタンを作成する方法とリダイレクト先を教えてくれるなら、それは完璧です(:

ありがとう!

8
greW

ええと、あなたはajaxでそれをすることができます、あなたはそれを-'?add-to-cart ='にリダイレクトすることができます、そしてアイテムはカートに入ります。だからあなたはあなたが望むようにあなたのボタンをデザインすることができるでしょう..

5
Danny

このようにショップページでのみ機能します。他のページでこれを試してください:

$product = get_product(77);
echo "<a href='" . $product->add_to_cart_url() ."'>add to cart</a>";
3
sabarnix

カートに追加のショートコードを使用してみてください。

<?php echo do_shortcode( '[add_to_cart id=' . $id . ']' ) ?>

すでに$ idを持っていると仮定します。

1
joseconsador

ショートコードはすでにAJAX機能を提供します。

これを試して:

<?php
global $product;
$pid = $product->get_id();
?>
<a href="<?php echo do_shortcode( '[add_to_cart_url id=' . $pid . ']' ) ?>" class="your-classes-here">Add to cart</a>

詳細については、こちらをご覧ください: https://docs.woocommerce.com/document/woocommerce-shortcodes/

これがお役に立てば幸いです。

0
Pablo