WordPress WooCommerce Add to Cart only adds one product -
i'm quite new woocommerce , can not figure out one. i'm creating custom api (based on user requirement) , i'm letting user login in laravel using post request this:
public function login (request $req) { global $woocommerce; $v = \validator::make($req->all(), [ 'username' => 'required|max:255', 'password' => 'required|max:255', ]); if ($v->passes()) { $user = wp_signon(['user_login'=>$req->input("username"),"user_password"=>$req->input("password")],true); if (is_wp_error($user) || !is_user_logged_in()) { return response(['success' => false, 'message' => "invalid username or password."], 401); } $key = md5($user->id . $user->user_login. (time() + 7200) . $user->email); $cookie = wp_generate_auth_cookie($user->id, (time() + 7200), "auth", $key); $store = [ 'user_login' => $user->data->user_login, 'user_id' => $user->data->id, 'user_nicename' => $user->data->user_nicename, 'user_email' => $user->data->user_email, 'user_url' => $user->data->user_url, 'user_registered' => $user->data->user_registered, 'display_name' => $user->data->display_name, ]; session::push($cookie, $store); wc()->cart->set_session(); return response(['auth_token' => $cookie, 'success' => true, 'cart'=>wc()->cart->get_cart_for_session(), 'timeout' => 7200], 200); } return response(['success' => false, 'message' => "required field(s) missing."], 401); } now, whenever add product cart, replaces previous value, , 1 item added cart. when login wordpress site , visit cart, shows error "undefined index", while cart empty. here's code adding item cart:
public function add($productid) { //wc()->session->set_customer_session_cookie(true); $cart_id = wc()->cart->generate_cart_id( $productid ); $prod_in_cart = wc()->cart->find_product_in_cart( $cart_id ); // add product if it's not in cart if( ! $prod_in_cart ) { wc()->cart->add_to_cart($productid,1,0,null,null); } return response([ 'user'=>wc()->session->get_customer_id(), 'cart'=>wc()->cart, ]); } i know i'm doing wrong don't know what. appreciated.
edit
if helps i'm using woocommerce version 2.3
you have hardcoded quantity 1. here function :
wc()->cart->add_to_cart($productid,1,0,null,null); in function, second parameter quantity. raise quantity if want.
$qty = 2; wc()->cart->add_to_cart($productid,$qty,0,null,null);
Comments
Post a Comment