BulkGate / cartsms

🛒 Extend your OpenCart store capabilities. Send personalized bulk SMS messages. Notify your customers about order status via customer SMS notifications. Receive order updates via Admin SMS notifications.
http://www.cart-sms.com/
GNU General Public License v2.0
1 stars 4 forks source link

HOOK loadLanguage add #2

Open lukaspijak opened 3 years ago

lukaspijak commented 3 years ago
        if ($variables->get('order_id'))
        {
            $row = $this->db->execute($this->db->prepare("SELECT `language_id` FROM `{$this->db->table('order')}` WHERE `order_id` = %s", array(
                $variables->get('order_id')
            )))->getRow();

            if ($row)
            {
                $variables->set('language_id', $row->language_id, '', true);
            }
        }
lukaspijak commented 3 years ago
protected function runHook($name, Extensions\Hook\Variables $variables)
    {
        if(!$variables->get('language_id'))
        {
            if ($variables->get('order_id'))
            {
                $db = $this->oc_di->getDatabase();

                $row = $db->execute($db->prepare("SELECT `language_id` FROM `{$db->table('order')}` WHERE `order_id` = %s", array(
                    $variables->get('order_id')
                )))->getRow();

                if ($row)
                {
                    $variables->set('language_id', $row->language_id, '', true);
                }
            }
            else
            {
                $language_iso = isset($this->session->data['language']) ? $this->session->data['language'] : null;
                $variables->set('language_id', (int) BulkGate\CartSms\Helpers::getLanguageId($language_iso, $this->oc_di->getDatabase()));
            }
        }

        $hook = new Extensions\Hook\Hook(
            $this->oc_di->getModule()->getUrl('/module/hook'),
            $variables->get('language_id', 0),
            $variables->get('store_id', (int) ($this->config->get('config_store_id') ?: 0)),
            $this->oc_di->getConnection(),
            $this->oc_settings,
            new BulkGate\CartSms\HookLoad($this->oc_di->getDatabase())
        );

        try
        {
            $hook->run((string) $name, $variables);
            return true;
        }
        catch (Extensions\IO\InvalidResultException $e)
        {
            return false;
        }
    }