関数
CRUD::executeAddToWishlist( int $post_id, string $sku, string $serial, string $advance = '' )
お気に入りリストのテーブルに商品を挿入する
説明 説明
If the user is not logged in or a DB error occurs, false is returned, otherwise true is returned.
- $post_id
(数値) (必須)
- $sku
(文字列) (必須)
- $serial
(文字列) (必須)
- $advance
(文字列) (任意)
ファイル: src/API/CRUD.php
public static function executeAddToWishlist($post_id, $sku, $serial, $advance = '') {
global $wpdb;
if (empty(self::getMemberId())) {
return false;
}
$srow = self::getWishlistItemBySerial($serial);
if (!empty($srow)) {
// return `true` if the item already exists in wishlist
return true;
}
$unit_price = null;
$tempcart = new \usces_cart();
/*
* `get_realprice` uses `$this->serial` internally so we need to set `serial`
* before calling it.
*
* We can't use `$usces->cart->get_realprice(...)` because spoofing `serial`
* would directly affect the cart session.
*/
$tempcart->serial = $serial;
// `$sku` is automatically urldecoded in `get_realprice`
$price = (int)$tempcart->get_realprice($post_id, $sku, 1, null, $unit_price);
$res = $wpdb->insert(
Master::getWishlistTableName(),
[
'mem_id' => self::getMemberId(),
'quantity' => 1,
'price' => $price,
'advance' => $advance,
'item_serial' => $serial,
],
[
'%d',
'%d',
'%d',
'%s',
'%s',
]
);
if ($res === false) {
return false;
}
return true;
}