/** * Delete related data. */ public function afterDelete() { // Delete related products $this->clearRelatedProducts(); StoreRelatedProduct::model()->deleteAll('related_id=:id', array('id' => $this->id)); // Delete categorization StoreProductCategoryRef::model()->deleteAllByAttributes(array('product' => $this->id)); // Delete images $images = $this->images; if (!empty($images)) { foreach ($images as $image) { $image->delete(); } } // Delete variants $variants = StoreProductVariant::model()->findAllByAttributes(array('product_id' => $this->id)); foreach ($variants as $v) { $v->delete(); } // Clear configurable attributes Yii::app()->db->createCommand()->delete('StoreProductConfigurableAttributes', 'product_id=:id', array(':id' => $this->id)); // Delete configurations Yii::app()->db->createCommand()->delete('StoreProductConfigurations', 'product_id=:id', array(':id' => $this->id)); Yii::app()->db->createCommand()->delete('StoreProductConfigurations', 'configurable_id=:id', array(':id' => $this->id)); // Delete from wish lists Yii::import('application.modules.store.models.wishlist.StoreWishlistProducts'); $wishlistProduct = StoreWishlistProducts::model()->findByAttributes(array('product_id' => $this->id)); if ($wishlistProduct) { $wishlistProduct->delete(); } return parent::afterDelete(); }
/** * @param null $user_id if null will count for current user * @return mixed */ public static function countByUser($user_id = null) { if ($user_id === null) { $user_id = Yii::app()->user->id; } $table = StoreWishlistProducts::model()->tableName(); return Yii::app()->db->createCommand("SELECT COUNT(id) FROM {$table} WHERE user_id=:user_id")->bindValue(':user_id', $user_id)->queryScalar(); }