【问题标题】:Woocommerce multiple products to cart not working?Woocommerce 多种产品到购物车不起作用?
【发布时间】:2017-11-22 22:40:20
【问题描述】:

我在将多个自定义产品添加到 woocommerce 购物车时遇到问题。如何以编程方式将多个产品添加到购物车。请检查我的以下代码并就此提出建议。我在作为模板文件夹的自定义页面中有此代码。

$values = array();
         $post_values = array();
         $i=0;
    foreach($_POST['post_quantity'] as $key =>$value){


   /*$lastid[$i] = multiple product inserted id's */


$wpdb->insert('wp_posts', array(
      'post_title'    => 'xxxxx  xxx ID: '.$_POST['quoted_sid'][$key].'  - Product ID: '.$_POST['product_id'][$key],
      'post_content'  => $_POST['product_description'][$key],
      'post_date' => date('Y-m-d H:i:s'),
      'post_status'   => 'publish',
      'post_author'   => 1,
      'post_type'     =>'product'
    ));
    $lastid[$i] = $wpdb->insert_id;

            $date[$i] = date('Y-m-d H:i:s');

        add_post_meta($lastid[$i], '_regular_price', $_POST['product_price'][$key]);
        add_post_meta($lastid[$i], '_price', $_POST['product_price'][$key]);
        add_post_meta($lastid[$i],'_visibility','visible');

    add_post_meta($lastid[$i], '_stock_status', 'instock' );
    add_post_meta($lastid[$i], '_weight', '11' );
    add_post_meta($lastid[$i], '_sku', 'Quoted xxxx_'.$_POST['product_id'][$key] );
    add_post_meta($lastid[$i], '_duplicate_price', $_POST['product_duplicate_price'][$key] );
    add_post_meta($lastid[$i], '_material', $_POST['product_material'][$key] );

$i++;
        //$woocommerce->cart->add_to_cart(  $lastid[$i], $quantity=$_POST['post_quantity'][$key], $cart_item_data ); 

    }

    $woocommerce->cart->add_to_cart(  $lastid[$i], 
        $quantity=$_POST['post_quantity'][$key], $cart_item_data ); 

我试过这样,下面的函数正在工作,但我不知道如何添加数量和其他 cart_item_data_fields

$product_ids = filter_var_array( $lastid, FILTER_SANITIZE_SPECIAL_CHARS );
        foreach ( $product_ids as $product_id ) {
            $woocommerce->cart->add_to_cart( $product_id );
        } 

如何传递数量和其他 cart_item_data 字段。

【问题讨论】:

标签: php wordpress woocommerce


【解决方案1】:

您正在函数调用中传递数量变量赋值的值。因此,如果赋值结果返回 false,则该值只是 false。您需要传入预先分配的变量或实际的表达式值。

(当您声明函数定义时,您可以将函数参数分配给默认值的“常量”值。)

【讨论】:

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