Dodanie obsługi kuponów rabatowych w szczegółach zamówienia oraz aktualizacja adresów URL do zasobów aktualizacji
This commit is contained in:
@@ -64,7 +64,7 @@ echo $grid -> draw();
|
||||
?>
|
||||
<?
|
||||
ob_start();
|
||||
echo $versions = file_get_contents( 'http://www.shoppro.project-dc.pl/updates/changelog.php' );
|
||||
echo $versions = file_get_contents( 'https://shoppro.project-dc.pl/updates/changelog.php' );
|
||||
$out = ob_get_clean();
|
||||
|
||||
$grid = new \gridEdit;
|
||||
|
||||
BIN
autoload/.DS_Store
vendored
Normal file
BIN
autoload/.DS_Store
vendored
Normal file
Binary file not shown.
@@ -51,12 +51,16 @@ class ShopOrder
|
||||
|
||||
public static function order_details()
|
||||
{
|
||||
$order = new \shop\Order( (int)\S::get( 'order_id' ) );
|
||||
$coupon = new \shop\Coupon( $order -> coupon_id );
|
||||
|
||||
return \Tpl::view( 'shop-order/order-details', [
|
||||
'order' => new \shop\Order( (int)\S::get( 'order_id' ) ),
|
||||
'order_statuses' => \shop\Order::order_statuses(),
|
||||
'next_order_id' => \admin\factory\ShopOrder::next_order_id( (int)\S::get( 'order_id' ) ),
|
||||
'prev_order_id' => \admin\factory\ShopOrder::prev_order_id( (int)\S::get( 'order_id' ) ),
|
||||
] );
|
||||
'order' => $order,
|
||||
'coupon' => $coupon,
|
||||
'order_statuses' => \shop\Order::order_statuses(),
|
||||
'next_order_id' => \admin\factory\ShopOrder::next_order_id( (int)\S::get( 'order_id' ) ),
|
||||
'prev_order_id' => \admin\factory\ShopOrder::prev_order_id( (int)\S::get( 'order_id' ) ),
|
||||
] );
|
||||
}
|
||||
|
||||
public static function view_list()
|
||||
|
||||
@@ -9,7 +9,7 @@ class Update
|
||||
|
||||
\S::delete_session( 'new-version' );
|
||||
|
||||
$versions = file_get_contents( 'http://www.shoppro.project-dc.pl/updates/versions.php?key=' . $settings['update_key'] );
|
||||
$versions = file_get_contents( 'https://shoppro.project-dc.pl/updates/versions.php?key=' . $settings['update_key'] );
|
||||
$versions = explode( PHP_EOL, $versions );
|
||||
|
||||
foreach ( $versions as $ver )
|
||||
@@ -22,7 +22,7 @@ class Update
|
||||
else
|
||||
$dir = substr( $ver, 0, strlen( $ver ) - 1 ) . 0;
|
||||
|
||||
$file = file_get_contents( 'http://www.shoppro.project-dc.pl/updates/' . $dir . '/ver_' . $ver . '.zip' );
|
||||
$file = file_get_contents( 'https://shoppro.project-dc.pl/updates/' . $dir . '/ver_' . $ver . '.zip' );
|
||||
|
||||
$dlHandler = fopen( 'update.zip' , 'w' );
|
||||
if ( !fwrite( $dlHandler, $file ) )
|
||||
@@ -34,10 +34,10 @@ class Update
|
||||
else
|
||||
{
|
||||
/* aktualizacja bazy danych */
|
||||
$url = 'http://www.shoppro.project-dc.pl/updates/' . $dir . '/ver_' . $ver . '_sql.txt';
|
||||
$url = 'https://shoppro.project-dc.pl/updates/' . $dir . '/ver_' . $ver . '_sql.txt';
|
||||
$ch = curl_init( $url );
|
||||
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
|
||||
curl_setopt( $ch, CURLOPT_HEADER, true );
|
||||
curl_setopt( $ch, CURLOPT_HEADER, false );
|
||||
$response = curl_exec( $ch );
|
||||
$content_type = curl_getinfo( $ch, CURLINFO_CONTENT_TYPE );
|
||||
|
||||
@@ -53,10 +53,10 @@ class Update
|
||||
}
|
||||
|
||||
/* usuwanie zbędnych plików */
|
||||
$url = 'http://www.shoppro.project-dc.pl/updates/' . $dir . '/ver_' . $ver . '_files.txt';
|
||||
$url = 'https://shoppro.project-dc.pl/updates/' . $dir . '/ver_' . $ver . '_files.txt';
|
||||
$ch = curl_init( $url );
|
||||
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
|
||||
curl_setopt( $ch, CURLOPT_HEADER, true );
|
||||
curl_setopt( $ch, CURLOPT_HEADER, false );
|
||||
$response = curl_exec( $ch );
|
||||
$content_type = curl_getinfo( $ch, CURLINFO_CONTENT_TYPE );
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ class Log
|
||||
static public function save_log( $message, $user_id = null )
|
||||
{
|
||||
global $mdb;
|
||||
|
||||
$mdb -> insert( 'pp_log', [
|
||||
'message' => $message,
|
||||
'user_id' => $user_id ? $user_id : null,
|
||||
|
||||
@@ -117,96 +117,97 @@ class S
|
||||
|
||||
static public function generate_webp_image($file, $compression_quality = 85)
|
||||
{
|
||||
if (strpos($file, 'thumb/') !== false) {
|
||||
$file_tmp = explode('/', $file);
|
||||
if ( strpos( $file, 'thumb/' ) !== false )
|
||||
{
|
||||
$file_tmp = explode( '/', $file );
|
||||
|
||||
$width = $file_tmp[1] ?? 500;
|
||||
$height = $file_tmp[2] ?? 500;
|
||||
$width = $file_tmp[1];
|
||||
if ( empty( $width ) and $width !== '0' )
|
||||
$width = 500;
|
||||
|
||||
for ($i = 0; $i <= 2; $i++) {
|
||||
unset($file_tmp[$i]);
|
||||
}
|
||||
$height = $file_tmp[2];
|
||||
if ( empty( $height ) and $height !== '0' )
|
||||
$height = 500;
|
||||
|
||||
$img_src = implode('/', $file_tmp);
|
||||
$crop_w = $_GET['c_w'] ?? 0;
|
||||
$crop_h = $_GET['c_h'] ?? 0;
|
||||
for ( $i = 0; $i <= 2; $i++ )
|
||||
unset( $file_tmp[$i] );
|
||||
|
||||
$img_md5 = md5($img_src . $height . $width . $crop_h . $crop_w);
|
||||
$file = 'thumbs/' . $img_md5[0] . '/' . $img_md5[1] . '/' . $img_md5[2] . '/' . $img_md5;
|
||||
}
|
||||
$img_src = implode( '/', $file_tmp );
|
||||
|
||||
if (!file_exists($file)) {
|
||||
$crop_w = $_GET['c_w'];
|
||||
$crop_h = $_GET['c_h'];
|
||||
|
||||
$img_md5 = md5( $img_src . $height . $width . $crop_h . $crop_w );
|
||||
$file = 'thumbs/' . $img_md5[0] . '/' . $img_md5[1] . '/' . $img_md5[2] . '/' . $img_md5;
|
||||
}
|
||||
|
||||
if ( !file_exists( $file ) )
|
||||
return false;
|
||||
|
||||
$output_file = 'cache/' . $file . '.webp';
|
||||
if ( file_exists( $output_file ) )
|
||||
return $output_file;
|
||||
|
||||
$file_type = mime_content_type( $file );
|
||||
|
||||
if ( function_exists( 'imagewebp' ) )
|
||||
{
|
||||
switch ( $file_type )
|
||||
{
|
||||
case 'image/jpeg':
|
||||
$image = imagecreatefromjpeg($file);
|
||||
break;
|
||||
|
||||
case 'image/png':
|
||||
$image = imagecreatefrompng($file);
|
||||
imagepalettetotruecolor($image);
|
||||
imagealphablending($image, true);
|
||||
imagesavealpha($image, true);
|
||||
break;
|
||||
|
||||
case 'image/gif':
|
||||
$image = imagecreatefromgif($file);
|
||||
break;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
||||
$output_file = 'cache/' . $file . '.webp';
|
||||
if (file_exists($output_file)) {
|
||||
return $output_file;
|
||||
$dir = dirname($output_file);
|
||||
if (!is_dir($dir))
|
||||
mkdir($dir, 0755, true);
|
||||
|
||||
$result = imagewebp($image, $output_file, $compression_quality);
|
||||
if (false === $result)
|
||||
return false;
|
||||
|
||||
imagedestroy($image);
|
||||
|
||||
return $output_file;
|
||||
}
|
||||
elseif (class_exists('Imagick'))
|
||||
{
|
||||
$dir = dirname($output_file);
|
||||
if (!is_dir($dir))
|
||||
mkdir($dir, 0755, true);
|
||||
|
||||
$image = new \Imagick();
|
||||
$image->readImage($file);
|
||||
|
||||
if ($file_type === 'png')
|
||||
{
|
||||
$image->setImageFormat('webp');
|
||||
$image->setImageCompressionQuality($compression_quality);
|
||||
$image->setOption('webp:lossless', 'true');
|
||||
}
|
||||
|
||||
$file_type = mime_content_type($file);
|
||||
$image->writeImage($output_file);
|
||||
return $output_file;
|
||||
}
|
||||
|
||||
if (function_exists('imagewebp')) {
|
||||
switch ($file_type) {
|
||||
case 'image/jpeg':
|
||||
$image = imagecreatefromjpeg($file);
|
||||
break;
|
||||
case 'image/png':
|
||||
$image = imagecreatefrompng($file);
|
||||
if (!$image) {
|
||||
return false; // Jeśli nie udało się wczytać obrazu, zwróć false
|
||||
}
|
||||
imagepalettetotruecolor($image);
|
||||
imagealphablending($image, true);
|
||||
imagesavealpha($image, true);
|
||||
break;
|
||||
case 'image/gif':
|
||||
$image = imagecreatefromgif($file);
|
||||
break;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!$image) {
|
||||
return false; // Zapobiega błędowi jeśli wczytanie obrazu się nie powiedzie
|
||||
}
|
||||
|
||||
$dir = dirname($output_file);
|
||||
if (!is_dir($dir)) {
|
||||
mkdir($dir, 0755, true);
|
||||
}
|
||||
|
||||
$result = imagewebp($image, $output_file, $compression_quality);
|
||||
imagedestroy($image);
|
||||
|
||||
return $result ? $output_file : false;
|
||||
} elseif (class_exists('Imagick')) {
|
||||
$dir = dirname($output_file);
|
||||
if (!is_dir($dir)) {
|
||||
mkdir($dir, 0755, true);
|
||||
}
|
||||
|
||||
$image = new \Imagick();
|
||||
try {
|
||||
$image->readImage($file);
|
||||
} catch (Exception $e) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($file_type === 'image/png') {
|
||||
$image->setImageFormat('webp');
|
||||
$image->setImageCompressionQuality($compression_quality);
|
||||
$image->setOption('webp:lossless', 'true');
|
||||
}
|
||||
|
||||
$image->writeImage($output_file);
|
||||
return $output_file;
|
||||
}
|
||||
|
||||
return false;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
public static function is_array_fix( $value )
|
||||
{
|
||||
if ( is_array( $value ) and count( $value ) )
|
||||
@@ -394,7 +395,7 @@ class S
|
||||
return $version;
|
||||
|
||||
$version = 0;
|
||||
$versions = file_get_contents( 'http://www.shoppro.project-dc.pl/updates/versions.php?key=' . $settings['update_key'] );
|
||||
$versions = file_get_contents( 'https://shoppro.project-dc.pl/updates/versions.php?key=' . $settings['update_key'] );
|
||||
$versions = explode( PHP_EOL, $versions );
|
||||
foreach ( $versions as $key => $version_tmp )
|
||||
{
|
||||
|
||||
BIN
autoload/front/.DS_Store
vendored
Normal file
BIN
autoload/front/.DS_Store
vendored
Normal file
Binary file not shown.
@@ -142,11 +142,14 @@ class ShopOrder
|
||||
global $page, $settings;
|
||||
|
||||
$page['language']['meta_title'] = \S::lang( 'meta-title-szczegoly-zamowienia' ) . ' | ' . $settings['firm_name'];
|
||||
$order = \front\factory\ShopOrder::order_details(
|
||||
\front\factory\ShopOrder::order_id( \S::get( 'order_hash' ) )
|
||||
);
|
||||
$coupon = new \shop\Coupon( $order['coupon_id'] );
|
||||
|
||||
return \Tpl::view( 'shop-order/order-details', [
|
||||
'order' => \front\factory\ShopOrder::order_details(
|
||||
\front\factory\ShopOrder::order_id( \S::get( 'order_hash' ) )
|
||||
),
|
||||
'order' => $order,
|
||||
'coupon' => $coupon,
|
||||
'client' => \S::get_session( 'client' ),
|
||||
'settings' => $settings
|
||||
] );
|
||||
|
||||
@@ -140,12 +140,14 @@ class ShopOrder
|
||||
'apilo_order_status_date' => date( 'Y-m-d H:i:s' ),
|
||||
'sellasist_order_status_date' => date( 'Y-m-d H:i:s' ),
|
||||
] );
|
||||
|
||||
$order_id = $mdb -> id();
|
||||
|
||||
if ( !$order_id )
|
||||
return false;
|
||||
|
||||
\Log::save_log( 'Złożono nowe zamówienie | NR: ' . $order_id );
|
||||
if ( $coupon )
|
||||
$mdb -> update( 'pp_shop_coupon', [ 'used_count[+]' => 1 ], [ 'id' => $coupon -> id ] );
|
||||
|
||||
// ustawienie statusu zamówienia
|
||||
$mdb -> insert( 'pp_shop_order_statuses', [ 'order_id' => $order_id, 'status_id' => 0, 'mail' => 1 ] );
|
||||
@@ -217,9 +219,10 @@ class ShopOrder
|
||||
$order = \front\factory\ShopOrder::order_details( $order_id );
|
||||
|
||||
$mail_order = \Tpl::view( 'shop-order/mail-summary', [
|
||||
'settings' => $settings,
|
||||
'order' => $order
|
||||
] );
|
||||
'settings' => $settings,
|
||||
'order' => $order,
|
||||
'coupon' => $coupon,
|
||||
] );
|
||||
|
||||
$settings[ 'ssl' ] ? $base = 'https' : $base = 'http';
|
||||
|
||||
|
||||
@@ -328,10 +328,12 @@ class Order implements \ArrayAccess
|
||||
global $settings;
|
||||
|
||||
$order = \front\factory\ShopOrder::order_details( $this -> id );
|
||||
$coupon = new \shop\Coupon( $order['coupon_id'] );
|
||||
|
||||
$mail_order = \Tpl::view( 'shop-order/mail-summary', [
|
||||
'settings' => $settings,
|
||||
'order' => $order
|
||||
'order' => $order,
|
||||
'coupon' => $coupon,
|
||||
] );
|
||||
|
||||
$settings[ 'ssl' ] ? $base = 'https' : $base = 'http';
|
||||
|
||||
BIN
templates/.DS_Store
vendored
Normal file
BIN
templates/.DS_Store
vendored
Normal file
Binary file not shown.
@@ -136,6 +136,13 @@ echo $this -> settings['newsletter_header'];
|
||||
</td>
|
||||
</tr>
|
||||
<? endif;?>
|
||||
<? if ( $this -> coupon ):?>
|
||||
<tr>
|
||||
<td style="text-align: right; font-weight: 600; padding-top: 10px;" colspan="4">
|
||||
Kod rabatowy: <span style="color: #cc0000;"><?= $this -> coupon -> name;?> - <?= $this -> coupon -> amount;?> <?= $this -> coupon -> type == 1 ? '%' : 'zł';?></span>
|
||||
</td>
|
||||
</tr>
|
||||
<? endif;?>
|
||||
<tr>
|
||||
<td style="text-align: right; font-weight: 600; padding-top: 10px;" colspan="4"><?= $this -> order['payment_method'];?></td>
|
||||
</tr>
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
</div>
|
||||
<?= \Tpl::view( 'shop-order/order-simple', [
|
||||
'order' => $this -> order,
|
||||
'coupon' => $this -> coupon,
|
||||
'statuses' => \shop\Order::order_statuses()
|
||||
] );?>
|
||||
<? if ( $this -> order['status'] == 0 or $this -> order['status'] == 2 ):?>
|
||||
|
||||
@@ -88,6 +88,11 @@
|
||||
Rabat <span class="text-danger"><?= \S::decimal( $discount );?> zł</span>
|
||||
</div>
|
||||
<? endif;?>
|
||||
<? if ( $this -> coupon ):?>
|
||||
<div class="basket-summary">
|
||||
Kod rabatowy: <span style="color: #cc0000;"><?= $this -> coupon -> name;?> - <?= $this -> coupon -> amount;?> <?= $this -> coupon -> type == 1 ? '%' : 'zł';?></span>
|
||||
</div>
|
||||
<? endif;?>
|
||||
<div class="basket-summary">
|
||||
<?= $this -> order['transport'];?> <span><?= \S::decimal( $this -> order['transport_cost'] );?> zł</span>
|
||||
</div>
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
</div>
|
||||
<?= \Tpl::view( 'shop-order/order-simple', [
|
||||
'order' => $this -> order,
|
||||
'coupon' => $this -> coupon,
|
||||
'statuses' => \shop\Order::order_statuses()
|
||||
] );?>
|
||||
<? if ( $this -> order['status'] == 0 or $this -> order['status'] == 2 ):?>
|
||||
|
||||
Reference in New Issue
Block a user