Woocommerce-JS 또는 PHP를 통해 프로그래밍 방식으로 장바구니에 제품 추가 [닫기]


32

나는 Woocommerce 플러그인을 사용하여 사이트의 작은 전자 상거래 부분을 용이하게하고 자체 '카트에 추가'버튼을 사용하는 대신 전화 또는 기능을 통해 장바구니에 제품을 추가해야합니다.

이것은 기본적으로 Woocommerce에 SKU와 수량을 보내고 카트를 업데이트하는 것을 의미합니다.

sendToCart('123456', 55);

기타

설명서를 살펴본 결과 이런 종류의 참조를 찾을 수없는 것 같습니다. 아무도 내가 어떻게 이것을 달성 할 수 있는지 제안 할 수 있습니까?


너무 현지화 되어 투표에 참여했습니다 . WooThemes 지원을 사용해 보셨습니까?
Chip Bennett

3
@ Chip Bennett 나는 예, 불행히도 가입하기 위해 125 달러를 청구합니다. 이것은 Wordpress와 Woocommerce의 괄호 안에 있습니다. 여기 자체가 유효한 태그이므로 반드시 유효합니까? 내가 너무 현지화되어 있다고 오해하지 않는 한?
Larry B

이 질문은 특히 WordPress 와 관련이 없습니다 . 플러그인 기능 및 사용자 정의 플러그인 기능 / 코드와 같은 WooCommerce 플러그인 자체 만 관련됩니다. 주제에 가깝지 않은 투표를 할 수 있었지만 상용 제품 또는 상용 지원 옵션이있는 제품에 대한 질문 에는 일반적으로 너무 현지화 된 방식 을 사용 합니다.
Chip Bennett

12
@ChipBennett Woocommerce는 워드 프레스만을위한 것이기 때문에 워드 프레스와 관련이없는 것처럼 catagorise에 이상한 것 같습니다. Woocommerce에 대한 질문을 게시하지 않으면 어떻게 Woocommerce 태그를 사용합니까? 어쨌든 나는 다른 사람이 같은 문제를 겪을 경우에 지금 게시 할 답을 찾았습니다.
래리 B

11
@GHarping이 질문에 답을 해주셔서 감사합니다. :)
Ryan

답변:


35

좋아, 결국 내가 그것을 해결하는 방법이 있습니다. 빠르고 더러운 예는 JQuery를 사용합니다.

<a id="buy" href="#">Buy this!</a>
    <script>    
       $('#buy').click(function(e) {
          e.preventDefault();
          addToCart(19);
          return false;
       });    

       function addToCart(p_id) {
          $.get('/wp/?post_type=product&add-to-cart=' + p_id, function() {
             // call back
          });
       }
    </script>

이것은 단지 카트 URL에 AJAX GET 요청을합니다.

/wp/?post_type=product&add-to-cart=[PRODUCT_ID]

7
이것은 더 이상 작동하지 않습니다 (wc v2.1.12). 솔루션을
찾아서

30

PHP에서는 다음과 같이 처리했습니다.

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

이 방법은 woocommerce / classes / class-wc-cart.php에 있습니다 :

    /**
     * Add a product to the cart.
     *
     * @param string $product_id contains the id of the product to add to the cart
     * @param string $quantity contains the quantity of the item to add
     * @param int $variation_id
     * @param array $variation attribute values
     * @param array $cart_item_data extra cart item data we want to pass into the item
     * @return bool
     */
    public function add_to_cart( $product_id, $quantity = 1, $variation_id = '', $variation = '', $cart_item_data = array() ) {

3
어떻게 아약스를 통해 해당 메소드를 호출 할 수 있습니까?
Luca Reghellin

1
@Stratboy는 Wordpress에서 AJAX 함수를 추가하는 권장 방법을 사용하여 codex.wordpress.org/AJAX_in_Plugins- 기본적으로 wordpress codex의 첫 번째 PHP 예제의 답변에서 3 줄을 삽입합니다.
CodeBrauer
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.