簡體   English   中英

向Woocommerce購物籃腳本添加多個產品

[英]Adding multiple products to Woocommerce basket script

我有一個小的HTML產品選擇器,它通過url中的發布數據傳遞Woocommerce sku。 我想使用這些sku將匹配的產品添加到woocommerce購物車中。

我已經寫了一個PHP腳本,它位於我的Wordpress主題目錄中,我認為該目錄幾乎已經存在,但是可以幫助我解決為什么出現“ 500服務器錯誤”的問題。 如果我刪除了add_to_cart函數並回顯了sku,那可以正常工作,所以我發現問題出在這里。 我的想法是因為我在循環之外使用add_to_cart函數? 但我不確定。 到目前為止,如果有人可以幫忙,以下是我所能得到的,將不勝感激。

    <?php

  //get skus
  $design_sample_ids = $_GET["samples"];

  //put skus in array
  $design_sample_id = explode(";", $design_sample_ids);

  //loop through skus
  foreach ($design_sample_id as $sample_id) {

    //add each sku to cart
    WC()->cart->add_to_cart($sample_id);

}

?>

好的,我已經拼湊了一個對我有用的解決方案。 但是,這可能不是最好的,所以我仍然很感興趣,看看其他人能提出什么。 但是將其發布在這里以防萬一。

在functions.php文件中。

    function add_multiple_sku($design_space_sample_skus) {

  global $woocommerce;

  //put the skus in an array
  $design_space_sample_sku = explode(";", $design_space_sample_skus);

  //loop through array of skus
  foreach ($design_space_sample_sku as $sample_sku) {

    //convert skus to product ids

      $sample_id = wc_get_product_id_by_sku( $sample_sku );

      //add each product id to the cart

    WC()->cart->add_to_cart( $sample_id );

  }

  //redirect to the cart
  $cart_url = $woocommerce->cart->get_cart_url();
  wp_safe_redirect( $cart_url );

}

然后,該函數需要在某個地方調用並插入SKU。我在主題目錄中創建了一個文件,並使用了以下文件。 SKU已過帳到具有過帳數據的文件。 再次,可能不是最佳解決方案。

 $parse_uri = explode( 'wp-content', $_SERVER['SCRIPT_FILENAME'] );
require_once( $parse_uri[0] . 'wp-load.php' );

//add multiple skus

$design_space_sample_id = $_GET["samples"];

add_multiple_sku($design_space_sample_id);

這就是為我解決的問題。

我將此HTML放在頁面中:

<form method="post" action="/">

    <input type="hidden" name="E24MT1260" value="23">
    <input type="hidden" name="ACFIT60060015" value="14">

    <input type="hidden" name="programatic_add_to_cart" value="true">
    <input type="submit" value="Add to cart">

</form>

並將其添加到我的functions.php

<?php

    add_action('wp_loaded', function() {
        global $woocommerce;

        if (!empty($_POST) && !empty($_POST['programatic_add_to_cart'])){ 
            global $woocommerce;

            foreach ($_POST as $sku => $quantity) {

                $product_id = wc_get_product_id_by_sku($sku);
                $woocommerce->cart->add_to_cart($product_id, $quantity);
            }

            wp_redirect( '/cart' );
            exit;
        }

    });

?>

我正在尋找可以做相同事情的代碼-允許我使用SKU將多個產品添加到購物車中-因此用戶可以在文本字段中輸入SKU(假設有三個文本輸入,他們可以在他們提交商品時,在每個商品中添加一個SKU,然后將這些商品添加到購物車中。 您願意提供完整的代碼嗎? 謝謝!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM