Поддержать Проект

Обратная связь

[MODX] Guru
  • Информация
  • Разработчикам
  • Дополнения
    • DocLister
    • DLMenu
    • DLCrumbs
    • DLBuildMenu
    • DLLastViews
    • DLSiblings
    • DLRequest
    • DLglossary
    • DLSitemap
    • DocInfo
    • FormLister
    • Wayfinder
    • phpthumb
    • LikeDislike
    • eForm
    • Ditto
    • multiTV
    • AjaxMegaSearch
    • AjaxSearch
    • WebLoginPE
    • Breadcrumbs
    • CodeMirror
    • AnythingRating
    • Easy Newsletter
    • FirstChildRedirect
    • OpenGraphTags
    • ddTypograph
    • TagSaver
    • BlackList
    • CfgTv
    • ModxAccount
    • Forgot Manager Login
    • GetField
    • if
    • Jot
    • ListChild
    • ListIndexer
    • ManagerManager
    • ddMMEditor
    • MaxiGallery
    • MemberCheck
    • ddGetMultipleField
    • MetaX
    • MODxBB и phpBB
    • Yams
    • Personalize
    • PHx
    • Reflect
    • tagLinks
    • TransAlias
    • TvTagCloud
    • UltimateParent
    • WebSignup
    • WebLogin
    • countViews
    • thumb
    • imageCaptor
    • optimizeJPG
    • Preview Next
    • Shopkeeper
      • Сниппет Shopkeeper
      • Сниппет SHKwidget
      • Модификатор shk_widget
      • Экстендер для Ditto
      • Модуль Shopkeeper
      • Пример Ditto eForm Phx
      • Примеры плагинов
      • Отправка смс через SMS.RU
      • Сообщения для менеджера
    • SiteMap
    • Sass
    • Selector
    • SimpleGallery
    • SimpleTube
    • SimpleFiles
    • Star Rating
    • MinifyX
    • adminNav
    • SimplePolls
    • CResource
    • MODxAPI
    • customTables
    • HtmlInLine
    • HtmlMinModxEvo
    • SHKUserProfile
    • PickDocsInTree
    • evoSearch
    • editDocs
    • PageBuilder
    • HybridAuth
    • Compare
    • alterTitle
  • Виджеты
  • Уроки
  • Разработчики
  • Готовые примеры
  • Блог
  • Конфиги
  • HTML коды
© [MODX] Guru
  • Shopkeeper

Примеры плагинов Shopkeeper

  • Дополнения
  • Shopkeeper
  • Примеры плагинов
3547

Примеры плагинов Shopkeeper

OnSHKChangeStatus

Изменения статуса заказа в Shopkeeper.

/**
 * OnSHKChangeStatus
 * 
 * @internal    @events OnSHKChangeStatus
 * 
 */

defined('IN_MANAGER_MODE') or die();
$e = &$modx->Event;
$output = "";
if ($e->name == 'OnSHKChangeStatus') {
	$order_id = isset($order_id) ? $order_id : '';
	$status = isset($status) ? $status : '';

	$output .= "OnSHKChangeStatus submited
"; $output .= "ID заказа: $order_id, Статус: $status"; $modx->event->output($output); }

OnSHKsaveOrder

Плагин переводит заказ в статус "Отправлен" (название меняется в яз. файле) и пересчитывает кол-во товара на складе сразу после отправки заказа.

/**
 * OnSHKChangeStatus 
 * 
 * @internal    @events OnSHKsaveOrder
 * 
 */

$e = &$modx->Event;
$output = "";

if ($e->name == 'OnSHKsaveOrder') {
	$order_id = isset($id) && is_numeric($id) ? $id : 0;
	$purchases = isset($purchases) && is_array($purchases) ? $purchases : array();
	if(!$id || !count($purchases)) return;

	//вытаскиваем имя TV кол-ва на складе из конфигурации модуля
	$conf_inventory = $modx->db->getValue($modx->db->select("value",$modx->getFullTableName('manager_shopkeeper_config'),"setting = 'conf_inventory'"));

	//изменем статус на Отправлен
	$update_status = $modx->db->update(array('status'=>3),$modx->getFullTableName('manager_shopkeeper'),"`id` = '$order_id'");

	//Обновляем значения TV кол-ва товаров на складе
	require_once MODX_BASE_PATH."assets/snippets/shopkeeper/classes/class.shopkeeper.php";
	require_once MODX_BASE_PATH."assets/snippets/shopkeeper/classes/class.SHKmanager.php";

	$shkm = new SHKmanager($modx);

	$p_allowed = $shkm->allowedArray('all',$purchases);
	$shkm->updateInventory($purchases,$p_allowed,$conf_inventory);
	$modx->clearCache();
}

OnSHKFrontendInit

/**
 * Shopkeeper plugin example
 * 
 * @internal    @events OnSHKFrontendInit
 * 
 */

defined('IN_MANAGER_MODE') or die();
$e = &$modx->Event;
$output = "";

if($e->name == 'OnSHKFrontendInit') {
	if(isset($_SESSION['purchases'])){
		$purchases = unserialize($_SESSION['purchases']);
		foreach($purchases as $key => $value){
			$output .= "ID: $value[0], count: $value[1], price: $value[2]
"; } } $output .= ''; $modx->event->output($output); }

OnSHKgetProductPrice

Применения разных действиях над ценами товара до отображения, например сделать скидку.

/**
 * OnSHKgetProductPrice
 * 
 * @internal    @events OnSHKgetProductPrice
 * 
 */

$e = &$modx->Event;
$output = "";

if ($e->name == 'OnSHKgetProductPrice') {
	if(isset($price)){
		$discount = 5; //discount 5%
		$output = round($price * (1-$discount/100), 2);
	}
	$modx->event->output($output);
}

OnSHKmodRenderTopLinks

/**
 * OnSHKmodRenderTopLinks
 * 
 * @internal    @events OnSHKmodRenderTopLinks
 * 
 */

defined('IN_MANAGER_MODE') or die();
$e = &$modx->Event;
$output = "";

if ($e->name == 'OnSHKmodRenderTopLinks') {
	$mod_page = "index.php?a=112&id=".$_GET['id'];
	$output .= '
  • Пример плагина
  • '; } $modx->event->output($output);

    OnSHKmodPagePrint

    /**
     * OnSHKmodPagePrint
     * 
     * @internal    @events OnSHKmodPagePrint
     * 
     */
    
    defined('IN_MANAGER_MODE') or die();
    $e = &$modx->Event;
    $output = "";
    
    if ($e->name == 'OnSHKmodPagePrint') {
    	if(isset($_GET['pname']) && $_GET['pname']=='example'){
    		$mod_page = "index.php?a=112&id=".$_GET['id'];
    		$html = '
    			Тестовый плагин для модуля.
    			

    •   Назад
    '; echo $html; } } $modx->event->output($output);

    OnSHKsaveOrder

    Плагин переводит заказ в статус "Отправлен" (название меняется в яз. файле) и пересчитывает кол-во товара на складе сразу после отправки заказа.

    /**
     * OnSHKsaveOrder
     *	
     * @internal    @events OnSHKsaveOrder
     * 
     */
    
    $e = &$modx->Event;
    $output = "";
    
    if ($e->name == 'OnSHKsaveOrder') {
    	$order_id = isset($id) && is_numeric($id) ? $id : 0;
    	$purchases = isset($purchases) && is_array($purchases) ? $purchases : array();
    	if(!$id || !count($purchases)) return;
    	
    	//вытаскиваем имя TV кол-ва на складе из конфигурации модуля
    	$conf_inventory = $modx->db->getValue($modx->db->select("value",$modx->getFullTableName('manager_shopkeeper_config'),"setting = 'conf_inventory'"));
    	
    	//изменем статус на Отправлен
    	$update_status = $modx->db->update(array('status'=>3),$modx->getFullTableName('manager_shopkeeper'),"`id` = '$order_id'");
    	
    	//Обновляем значения TV кол-ва товаров на складе
    	require_once MODX_BASE_PATH."assets/snippets/shopkeeper/classes/class.shopkeeper.php";
    	require_once MODX_BASE_PATH."assets/snippets/shopkeeper/classes/class.SHKmanager.php";
    	
    	$shkm = new SHKmanager($modx);
    	
    	$p_allowed = $shkm->allowedArray('all',$purchases);
    	$shkm->updateInventory($purchases,$p_allowed,$conf_inventory);
    	$modx->clearCache();
    }
    
    

    OnSHKcalcTotalPrice

    Расчет общей стоимости заказа

    /**
     * OnSHKsaveOrder
     *	
     * @internal    @events OnSHKcalcTotalPrice
     * @internal    @properties &threshold=пороговая величина;string;1000 &discount=скидка;string;5%
     *
     */
     
    $e = &$modx->Event;
    $output = "";
    
    if ($e->name == 'OnSHKcalcTotalPrice') {
    	if(isset($totalPrice)){
    		//скидка будет, когда общая сумма выбранных товаров достигнет определённой суммы,
    		// пороговая величина и скидка задаётся в конфигурации плагина
    		if($totalPrice>=$threshold){
    			$output = round($totalPrice * (1-$discount/100), 2);
    			$modx->setPlaceholder('discountInfo', "$discount");
    		}
    	}
    	$modx->event->output($output);
    }