関数
Wishlist::addToCart( array $args, array $payload )
お気に入りリスト商品をカートに追加し、更新したお気に入りリストを返す
説明 説明
売り切れもしくは他の理由でカートに追加できない場合、エラーを返す
- $args
(配列) (必須) URIパラメータ
- 'itemId'
(数値)お気に入りリスト商品ID
- 'itemId'
- $payload
(配列) (必須)
$_POST['payload']に格納されたjson_encodedデータから抽出された配列
ファイル: src/API/Wishlist.php
public function addToCart(array $args, array $payload) {
global $usces;
$echeck = $this->canAddToCart($args);
if ($echeck instanceof GenericError) {
return $echeck;
}
$id = (int)$args['itemId'];
$item = CRUD::getWishlistItemById($id);
$serial = $item['serial'];
if (!isset($_SESSION['usces_cart'][$serial])) {
$_SESSION['usces_cart'][$serial]['quant'] = (int)$item['quantity'];
$_SESSION['usces_cart'][$serial]['advance'] = (string)$item['advance'];
$unit_price = null;
// `get_realprice` uses `$this->serial` internally so we need to update it here
$usces->cart->serial = $serial;
$price = $usces->cart->get_realprice(
$item['postId'],
$item['sku'],
(int)$item['quantity'],
null,
$unit_price
);
$_SESSION['usces_cart'][$serial]['price'] = $price;
$_SESSION['usces_cart'][$serial]['unit_price'] = $unit_price;
if (!empty($item['advance'])) {
$_SESSION['usces_cart'][$serial]['advance'] = $usces->cart->wc_serialize((string)$item['advance']);
}
}
/**
* Fires after adding an item from the wishlist to the cart.
*
* @important
* @param \Aivec\Welcart\Extensions\Wishlist\API\Wishlist $this Instance of the `Wishlist` API class
* @param array $args See \Aivec\Welcart\Extensions\Wishlist\API\Wishlist::addToCart()
* for details
* @param array $payload See \Aivec\Welcart\Extensions\Wishlist\API\Wishlist::addToCart()
* for details
*/
do_action('wcexwl_wishlist_api_add_to_cart_on_complete', $this, $args, $payload);
return CRUD::getAndBuildWishlistItems();
}