Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

переработка модуля Оплата наличными в точке выдачи


Recommended Posts

Здравствуйте, в виду отсутствия нужного мне модуля, который бы выводил только на заданные товары метод оплаты "Наличными на пункте выдачи", решил переработать уже готовый модуль добавив в него данную функцию, но столкнулся вот с такой проблемой 

Warning: json_decode() expects parameter 1 to be string, array given in /home/virtwww/w_elbrust-ru_dc1f47bd/http/catalog/model/payment/cash_in_a_delivery_point.php on line 25Warning: array_search() expects parameter 2 to be array, null given in/home/virtwww/w_elbrust-ru_dc1f47bd/http/catalog/model/payment/cash_in_a_delivery_point.php on line 27

И вот собственно код самого файла из которого выдаются ошибки:

<?php 
class ModelPaymentCashInADeliveryPoint extends Model {
  	public function getMethod($address, $total) {
		$this->load->language('payment/cash_in_a_delivery_point');
		
		$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "zone_to_geo_zone WHERE geo_zone_id = '" . (int)$this->config->get('cash_in_a_delivery_point_geo_zone_id') . "' AND country_id = '" . (int)$address['country_id'] . "' AND (zone_id = '" . (int)$address['zone_id'] . "' OR zone_id = '0')");
	
		if (!$this->config->get('cash_in_a_delivery_point_geo_zone_id')) {
			$status = true;
		} elseif ($query->num_rows) {
			$status = true;
		} else {
			$status = false;
		}

		if ($this->cart->getSubTotal() < $this->config->get('cash_in_a_delivery_point_total')) {
			$status = false;
		}
		
		$method_data = array();
	
		if ($status) {
			$have_special = false;
			
			$cash_in_a_delivery_point_products = json_decode($this->config->get('cash_in_a_delivery_point_products'));
			foreach ($this->cart->getProducts() as $products) {
				if (array_search($products['product_id'], $cash_in_a_delivery_point_products) !== false) {
					$have_special = true;
				}
			}
			
			if ($have_special) {
				$quote_data = array();
				
				$quote_data['cash_in_a_delivery_point'] = array(
					'code'         => 'cash_in_a_delivery_point.cash_in_a_delivery_point',
					'title'        => $this->language->get('text_description'),
					'cost'         => 0.00,
					'tax_class_id' => 0,
					'text'         => $this->currency->format(0.00)
				);

				$method_data = array(
					'code'       => 'cash_in_a_delivery_point',
					'title'      => $this->language->get('text_title'),
					'quote'      => $quote_data,
					'sort_order' => $this->config->get('cash_in_a_delivery_point_sort_order'),
					'error'      => false
				);
			}
		}
	
		return $method_data;
	}
}
?>

Модуль пытался переработать взяв его за основу, и пытался выдрать функцию применимую по товарам вот из этого модуля.

В административных файлах сделал корректные изменения в админке вся работает как часы. А вот в пользовательской части выдаёт вот такую вот ошибку... В пхп я только новичок поэтому очень прошу вашей помощи в данном вопросе. 

Мною внесены изменения в следующие файлы: 

\admin\controller\payment\cash_in_a_delivery_point.php

\admin\language\russian\payment\cash_in_a_delivery_point.php

\admin\view\template\payment\cash_in_a_delivery_point.tpl

\catalog\model\payment\cash_in_a_delivery_point.php

 

И собственно сам модуль уже с изменениями внесенными мною: http://filebeam.com/b6a5cf28d7ccdb9664e0d4c6dceb77ab

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.