本文整理汇总了PHP中CCatalogDiscountSave::SetDiscountUserID方法的典型用法代码示例。如果您正苦于以下问题:PHP CCatalogDiscountSave::SetDiscountUserID方法的具体用法?PHP CCatalogDiscountSave::SetDiscountUserID怎么用?PHP CCatalogDiscountSave::SetDiscountUserID使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CCatalogDiscountSave
的用法示例。
在下文中一共展示了CCatalogDiscountSave::SetDiscountUserID方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: OrderProduct
//.........这里部分代码省略.........
}
}
} else {
$userGroups = $USER->GetUserGroupArray();
if (!($arProduct = static::getHitCache('IBLOCK_ELEMENT_PERM_Y', $productID))) {
$dbIBlockElement = CIBlockElement::GetList(array(), array('ID' => $productID, 'ACTIVE' => 'Y', 'ACTIVE_DATE' => 'Y', 'CHECK_PERMISSIONS' => 'Y', 'MIN_PERMISSION' => 'R'), false, false, array('ID', 'IBLOCK_ID', 'NAME', 'DETAIL_PAGE_URL'));
if ($arProduct = $dbIBlockElement->GetNext()) {
static::setHitCache('IBLOCK_ELEMENT_PERM_Y', $productID, $arProduct);
}
unset($dbIBlockElement);
}
if (empty($arProduct) || !is_array($arProduct)) {
return $arResult;
}
}
if (!($arCatalogProduct = static::getHitCache('CATALOG_PRODUCT', $productID))) {
$rsProducts = CCatalogProduct::GetList(array(), array('ID' => $productID), false, false, array('ID', 'CAN_BUY_ZERO', 'QUANTITY_TRACE', 'QUANTITY', 'WEIGHT', 'WIDTH', 'HEIGHT', 'LENGTH', 'BARCODE_MULTI', 'TYPE'));
if ($arCatalogProduct = $rsProducts->Fetch()) {
static::setHitCache('CATALOG_PRODUCT', $productID, $arCatalogProduct);
}
unset($rsProducts);
}
if (!empty($arCatalogProduct) && is_array($arCatalogProduct)) {
$arCatalogProduct["QUANTITY"] = (double) $arCatalogProduct["QUANTITY"];
if ($arParams["CHECK_QUANTITY"] == "Y") {
if ('Y' != $arCatalogProduct["CAN_BUY_ZERO"] && 'Y' == $arCatalogProduct["QUANTITY_TRACE"] && ($arCatalogProduct["QUANTITY"] <= 0 || $quantity > $arCatalogProduct["QUANTITY"])) {
return $arResult;
}
}
} else {
return $arResult;
}
if ($adminSection) {
CCatalogDiscountSave::SetDiscountUserID($intUserID);
}
$productHash = array('MODULE' => 'catalog', 'PRODUCT_ID' => $productID, 'BASKET_ID' => $arParams['BASKET_ID']);
$arCoupons = DiscountCouponsManager::getForApply(array(), $productHash, true);
if (!empty($arCoupons)) {
$arCoupons = array_keys($arCoupons);
}
$currentVatMode = CCatalogProduct::getPriceVatIncludeMode();
$currentUseDiscount = CCatalogProduct::getUseDiscount();
CCatalogProduct::setUseDiscount($arParams['CHECK_DISCOUNT'] == 'Y');
CCatalogProduct::setPriceVatIncludeMode(true);
CCatalogProduct::setUsedCurrency($arParams['CURRENCY']);
$arPrice = CCatalogProduct::GetOptimalPrice($productID, $quantity, $userGroups, $arParams['RENEWAL'], array(), $adminSection ? $strSiteID : false, $arCoupons);
if (empty($arPrice)) {
if ($nearestQuantity = CCatalogProduct::GetNearestQuantityPrice($productID, $quantity, $userGroups)) {
$quantity = $nearestQuantity;
$arPrice = CCatalogProduct::GetOptimalPrice($productID, $quantity, $userGroups, $arParams['RENEWAL'], array(), $adminSection ? $strSiteID : false, $arCoupons);
}
}
CCatalogProduct::clearUsedCurrency();
CCatalogProduct::setPriceVatIncludeMode($currentVatMode);
CCatalogProduct::setUseDiscount($currentUseDiscount);
unset($userGroups, $currentUseDiscount, $currentVatMode);
if ($adminSection) {
CCatalogDiscountSave::ClearDiscountUserID();
}
if (empty($arPrice)) {
return $arResult;
}
$arDiscountList = array();
if (empty($arPrice['DISCOUNT_LIST']) && !empty($arPrice['DISCOUNT']) && is_array($arPrice['DISCOUNT'])) {
$arPrice['DISCOUNT_LIST'] = array($arPrice['DISCOUNT']);
}
示例2: CatalogViewedProductCallback
function CatalogViewedProductCallback($productID, $UserID, $strSiteID = SITE_ID)
{
global $USER;
$productID = intval($productID);
$UserID = intval($UserID);
if ($productID <= 0) {
return false;
}
$arResult = array();
static $arUserCache = array();
if ($UserID > 0) {
if (!isset($arUserCache[$UserID])) {
$by = 'ID';
$order = 'DESC';
$rsUsers = CUser::GetList($by, $order, array("ID_EQUAL_EXACT" => $UserID), array('FIELDS' => array('ID')));
if ($arUser = $rsUsers->Fetch()) {
$arUserCache[$arUser['ID']] = CUser::GetUserGroup($arUser['ID']);
} else {
return false;
}
}
CCatalogDiscountSave::SetDiscountUserID($UserID);
$dbIBlockElement = CIBlockElement::GetList(array(), array("ID" => $productID, "ACTIVE" => "Y", "ACTIVE_DATE" => "Y", "CHECK_PERMISSIONS" => "N"), false, false, array('ID', 'IBLOCK_ID', 'NAME', 'DETAIL_PAGE_URL', 'TIMESTAMP_X', 'PREVIEW_PICTURE', 'DETAIL_PICTURE'));
if (!($arProduct = $dbIBlockElement->GetNext())) {
return false;
}
if (CIBlock::GetArrayByID($arProduct['IBLOCK_ID'], "RIGHTS_MODE") == 'E') {
$arUserRights = CIBlockElementRights::GetUserOperations($productID, $UserID);
if (empty($arUserRights)) {
return false;
} elseif (!is_array($arUserRights) || !array_key_exists('element_read', $arUserRights)) {
return false;
}
} else {
if (CIBlock::GetPermission($arProduct['IBLOCK_ID'], $UserID) < 'R') {
return false;
}
}
} else {
$dbIBlockElement = CIBlockElement::GetList(array(), array("ID" => $productID, "ACTIVE" => "Y", "ACTIVE_DATE" => "Y", "CHECK_PERMISSIONS" => "Y", "MIN_PERMISSION" => "R"), false, false, array('ID', 'IBLOCK_ID', 'NAME', 'DETAIL_PAGE_URL', 'TIMESTAMP_X', 'PREVIEW_PICTURE', 'DETAIL_PICTURE'));
if (!($arProduct = $dbIBlockElement->GetNext())) {
return false;
}
}
$bTrace = true;
if ($arCatalogProduct = CCatalogProduct::GetByID($productID)) {
if ($arCatalogProduct["CAN_BUY_ZERO"] != "Y" && ($arCatalogProduct["QUANTITY_TRACE"] == "Y" && doubleval($arCatalogProduct["QUANTITY"]) <= 0)) {
$currentPrice = 0.0;
$currentDiscount = 0.0;
$bTrace = false;
}
}
if ($bTrace) {
$arPrice = CCatalogProduct::GetOptimalPrice($productID, 1, $UserID > 0 ? $arUserCache[$UserID] : $USER->GetUserGroupArray(), "N", array(), $UserID > 0 ? $strSiteID : false, array());
if (count($arPrice) > 0) {
$currentPrice = $arPrice["PRICE"]["PRICE"];
$currentDiscount = 0.0;
if ($arPrice['PRICE']['VAT_INCLUDED'] == 'N') {
if (doubleval($arPrice['PRICE']['VAT_RATE']) > 0) {
$currentPrice *= 1 + $arPrice['PRICE']['VAT_RATE'];
$arPrice['PRICE']['VAT_INCLUDED'] = 'Y';
}
}
if (!empty($arPrice["DISCOUNT"])) {
$currentDiscount_tmp = 0;
if ($arPrice["DISCOUNT"]["VALUE_TYPE"] == "F") {
if ($arPrice["DISCOUNT"]["CURRENCY"] == $arPrice["PRICE"]["CURRENCY"]) {
$currentDiscount = $arPrice["DISCOUNT"]["VALUE"];
} else {
$currentDiscount = CCurrencyRates::ConvertCurrency($arPrice["DISCOUNT"]["VALUE"], $arPrice["DISCOUNT"]["CURRENCY"], $arPrice["PRICE"]["CURRENCY"]);
}
} elseif ($arPrice["DISCOUNT"]["VALUE_TYPE"] == "S") {
if ($arPrice["DISCOUNT"]["CURRENCY"] == $arPrice["PRICE"]["CURRENCY"]) {
$currentDiscount = $arPrice["DISCOUNT"]["VALUE"];
} else {
$currentDiscount = CCurrencyRates::ConvertCurrency($arPrice["DISCOUNT"]["VALUE"], $arPrice["DISCOUNT"]["CURRENCY"], $arPrice["PRICE"]["CURRENCY"]);
}
} else {
$currentDiscount = $currentPrice * $arPrice["DISCOUNT"]["VALUE"] / 100.0;
if (doubleval($arPrice["DISCOUNT"]["MAX_DISCOUNT"]) > 0) {
if ($arPrice["DISCOUNT"]["CURRENCY"] == $arPrice["PRICE"]["CURRENCY"]) {
$maxDiscount = $arPrice["DISCOUNT"]["MAX_DISCOUNT"];
} else {
$maxDiscount = CCurrencyRates::ConvertCurrency($arPrice["DISCOUNT"]["MAX_DISCOUNT"], $arPrice["DISCOUNT"]["CURRENCY"], $arPrice["PRICE"]["CURRENCY"]);
}
if ($currentDiscount > $maxDiscount) {
$currentDiscount = $maxDiscount;
}
}
}
if ($arPrice["DISCOUNT"]["VALUE_TYPE"] == "S") {
$currentDiscount_tmp = $currentPrice - $currentDiscount;
$currentPrice = $currentDiscount;
$currentDiscount = $currentDiscount_tmp;
} else {
$currentPrice = $currentPrice - $currentDiscount;
}
}
if (empty($arPrice["PRICE"]["CATALOG_GROUP_NAME"])) {
if (!empty($arPrice["PRICE"]["CATALOG_GROUP_ID"])) {
//.........这里部分代码省略.........
示例3: OrderProduct
public static function OrderProduct($arParams)
{
if (!is_set($arParams, "RENEWAL") || $arParams["RENEWAL"] != "Y") {
$arParams["RENEWAL"] = "N";
}
if (!is_set($arParams, "USER_ID") || IntVal($arParams["USER_ID"]) <= 0) {
$arParams["USER_ID"] = 0;
}
if (!is_set($arParams["SITE_ID"])) {
$arParams["SITE_ID"] = false;
}
global $USER;
global $DB;
$productID = intval($arParams["PRODUCT_ID"]);
$quantity = doubleval($arParams["QUANTITY"]);
$renewal = $arParams["RENEWAL"] == "Y" ? "Y" : "N";
$strSiteID = $arParams["SITE_ID"];
$intUserID = intval($arParams["USER_ID"]);
if (0 > $intUserID) {
$intUserID = 0;
}
$arResult = array();
static $arUserCache = array();
if (0 < $intUserID) {
if (!array_key_exists($intUserID, $arUserCache)) {
$rsUsers = CUser::GetList($by = 'ID', $order = 'DESC', array("ID_EQUAL_EXACT" => $intUserID), array('FIELDS' => array('ID')));
if ($arUser = $rsUsers->Fetch()) {
$arUserCache[$arUser['ID']] = CUser::GetUserGroup($arUser['ID']);
} else {
$intUserID = 0;
return $arResult;
}
}
$dbIBlockElement = CIBlockElement::GetList(array(), array("ID" => $productID, "ACTIVE" => "Y", "ACTIVE_DATE" => "Y", "CHECK_PERMISSION" => "N"), false, false, array('ID', 'IBLOCK_ID', 'NAME', 'DETAIL_PAGE_URL'));
if (!($arProduct = $dbIBlockElement->GetNext())) {
return $arResult;
}
if ('E' == CIBlock::GetArrayByID($arProduct['IBLOCK_ID'], "RIGHTS_MODE")) {
$arUserRights = CIBlockElementRights::GetUserOperations($productID, $intUserID);
if (empty($arUserRights)) {
return $arResult;
} elseif (!is_array($arUserRights) || !array_key_exists('element_read', $arUserRights)) {
return $arResult;
}
} else {
if ('R' > CIBlock::GetPermission($arProduct['IBLOCK_ID'], $intUserID)) {
return $arResult;
}
}
} else {
$dbIBlockElement = CIBlockElement::GetList(array(), array("ID" => $productID, "ACTIVE" => "Y", "ACTIVE_DATE" => "Y", "CHECK_PERMISSIONS" => "Y", "MIN_PERMISSION" => "R"), false, false, array('ID', 'IBLOCK_ID', 'NAME', 'DETAIL_PAGE_URL'));
if (!($arProduct = $dbIBlockElement->GetNext())) {
return $arResult;
}
}
if ($arCatalogProduct = CCatalogProduct::GetByID($productID)) {
if ($arCatalogProduct["CAN_BUY_ZERO"] != "Y" && ($arCatalogProduct["QUANTITY_TRACE"] == "Y" && doubleval($arCatalogProduct["QUANTITY"]) < doubleVal($quantity))) {
return $arResult;
}
} else {
return $arResult;
}
if (0 < $intUserID) {
$arCoupons = CCatalogDiscountCoupon::GetCouponsByManage($intUserID);
CCatalogDiscountSave::SetDiscountUserID($intUserID);
} else {
$arCoupons = CCatalogDiscountCoupon::GetCoupons();
}
$arPrice = CCatalogProduct::GetOptimalPrice($productID, $quantity, 0 < $intUserID ? $arUserCache[$intUserID] : $USER->GetUserGroupArray(), $renewal, array(), 0 < $intUserID ? $strSiteID : false, $arCoupons);
if (empty($arPrice)) {
if ($nearestQuantity = CCatalogProduct::GetNearestQuantityPrice($productID, $quantity, 0 < $intUserID ? $arUserCache[$intUserID] : $USER->GetUserGroupArray())) {
$quantity = $nearestQuantity;
$arPrice = CCatalogProduct::GetOptimalPrice($productID, $quantity, 0 < $intUserID ? $arUserCache[$intUserID] : $USER->GetUserGroupArray(), $renewal, array(), 0 < $intUserID ? $strSiteID : false, $arCoupons);
}
}
if (empty($arPrice)) {
if (0 < $intUserID) {
CCatalogDiscountSave::ClearDiscountUserID();
}
return $arResult;
}
$boolDiscountVat = 'N' != COption::GetOptionString('catalog', 'discount_vat', 'Y');
$currentPrice = $arPrice["PRICE"]["PRICE"];
$currentDiscount = 0.0;
if ($boolDiscountVat) {
if ('N' == $arPrice['PRICE']['VAT_INCLUDED']) {
$currentPrice *= 1 + $arPrice['PRICE']['VAT_RATE'];
$arPrice['PRICE']['VAT_INCLUDED'] = 'Y';
}
} else {
if ('Y' == $arPrice['PRICE']['VAT_INCLUDED']) {
$currentPrice /= 1 + $arPrice['PRICE']['VAT_RATE'];
$arPrice['PRICE']['VAT_INCLUDED'] = 'N';
}
}
$arDiscountList = array();
$arCouponList = array();
if (!empty($arPrice["DISCOUNT_LIST"])) {
$dblStartPrice = $currentPrice;
foreach ($arPrice["DISCOUNT_LIST"] as &$arOneDiscount) {
//.........这里部分代码省略.........
示例4: OrderProduct
//.........这里部分代码省略.........
'QUANTITY',
'WEIGHT',
'WIDTH',
'HEIGHT',
'LENGTH',
'BARCODE_MULTI',
'TYPE'
)
);
if ($arCatalogProduct = $rsProducts->Fetch())
{
$arCatalogProduct["QUANTITY"] = (double)$arCatalogProduct["QUANTITY"];
if ($arParams["CHECK_QUANTITY"] == "Y")
{
if (
'Y' != $arCatalogProduct["CAN_BUY_ZERO"]
&& 'Y' == $arCatalogProduct["QUANTITY_TRACE"]
&& ($arCatalogProduct["QUANTITY"] <= 0 || $quantity > $arCatalogProduct["QUANTITY"])
)
{
return $arResult;
}
}
}
else
{
return $arResult;
}
if (0 < $intUserID)
{
$arCoupons = CCatalogDiscountCoupon::GetCouponsByManage($intUserID);
CCatalogDiscountSave::SetDiscountUserID($intUserID);
}
else
{
$arCoupons = CCatalogDiscountCoupon::GetCoupons();
}
$userGroups = ($intUserID > 0 ? $arUserCache[$intUserID] : $USER->GetUserGroupArray());
$currentVatMode = CCatalogProduct::getPriceVatIncludeMode();
$currentUseDiscount = CCatalogProduct::getUseDiscount();
CCatalogProduct::setUseDiscount($arParams['CHECK_DISCOUNT'] == 'Y');
CCatalogProduct::setPriceVatIncludeMode(true);
CCatalogProduct::setUsedCurrency($arParams['CURRENCY']);
$arPrice = CCatalogProduct::GetOptimalPrice($productID, $quantity, $userGroups, $renewal, array(), (0 < $intUserID ? $strSiteID : false), $arCoupons);
if (empty($arPrice))
{
if ($nearestQuantity = CCatalogProduct::GetNearestQuantityPrice($productID, $quantity, $userGroups))
{
$quantity = $nearestQuantity;
$arPrice = CCatalogProduct::GetOptimalPrice($productID, $quantity, $userGroups, $renewal, array(), (0 < $intUserID ? $strSiteID : false), $arCoupons);
}
}
CCatalogProduct::clearUsedCurrency();
CCatalogProduct::setPriceVatIncludeMode($currentVatMode);
CCatalogProduct::setUseDiscount($currentUseDiscount);
unset($userGroups, $currentUseDiscount, $currentVatMode);
if (0 < $intUserID)
{
CCatalogDiscountSave::ClearDiscountUserID();
}
if (empty($arPrice))
示例5: OrderProduct
//.........这里部分代码省略.........
'QUANTITY',
'WEIGHT',
'WIDTH',
'HEIGHT',
'LENGTH',
'BARCODE_MULTI',
'TYPE'
)
);
if ($arCatalogProduct = $rsProducts->Fetch())
{
$arCatalogProduct["QUANTITY"] = (double)$arCatalogProduct["QUANTITY"];
if ($arParams["CHECK_QUANTITY"] == "Y")
{
if (
'Y' != $arCatalogProduct["CAN_BUY_ZERO"]
&& 'Y' == $arCatalogProduct["QUANTITY_TRACE"]
&& ($arCatalogProduct["QUANTITY"] <= 0 || $quantity > $arCatalogProduct["QUANTITY"])
)
{
return $arResult;
}
}
}
else
{
return $arResult;
}
if (0 < $intUserID)
{
$arCoupons = CCatalogDiscountCoupon::GetCouponsByManage($intUserID);
CCatalogDiscountSave::SetDiscountUserID($intUserID);
}
else
{
$arCoupons = CCatalogDiscountCoupon::GetCoupons();
}
$arPrice = CCatalogProduct::GetOptimalPrice($productID, $quantity, (0 < $intUserID ? $arUserCache[$intUserID] : $USER->GetUserGroupArray()), $renewal, array(), (0 < $intUserID ? $strSiteID : false), $arCoupons);
if (empty($arPrice))
{
if ($nearestQuantity = CCatalogProduct::GetNearestQuantityPrice($productID, $quantity, (0 < $intUserID ? $arUserCache[$intUserID] : $USER->GetUserGroupArray())))
{
$quantity = $nearestQuantity;
$arPrice = CCatalogProduct::GetOptimalPrice($productID, $quantity, (0 < $intUserID ? $arUserCache[$intUserID] : $USER->GetUserGroupArray()), $renewal, array(), (0 < $intUserID ? $strSiteID : false), $arCoupons);
}
}
if (empty($arPrice))
{
if (0 < $intUserID)
{
CCatalogDiscountSave::ClearDiscountUserID();
}
return $arResult;
}
$boolDiscountVat = ('N' != COption::GetOptionString('catalog', 'discount_vat', 'Y'));
$currentPrice = $arPrice["PRICE"]["PRICE"];
$currentDiscount = 0.0;
if ($boolDiscountVat)