2016-02-23 3 views
-2

Я хотел бы создать биллинговую систему. Эта система должна показывать в своем профиле 20-долларовый повторный платеж за услуги, которые они подписали.PHP ежемесячный счет-фактура/счет-фактура

Если они добавляют новый в свою учетную запись, инструкция должна обновить новую сумму (например, 30 $) в зависимости от выбранной службы.

Я уже создал корзину на PHP, я знаю, как добавлять элементы в свою корзину и делать чек. Я просто немного смущен тем, как я сделаю это уникальным для каждого отдельного пользователя. Добавить в корзину.

<?php 
 
session_start(); 
 

 
// Get the product id 
 
$id = isset($_GET['id']) ? $_GET['id'] : ""; 
 
$name = isset($_GET['name']) ? $_GET['name'] : ""; 
 
$quantity = isset($_GET['quantity']) ? $_GET['quantity'] : ""; 
 

 
//Check if the cart array was created 
 
//If it isn't, create the cart array 
 
if(!isset($_SESSION['cart_items'])){ 
 
\t $_SESSION['cart_items'] = array(); 
 
} 
 

 
//Check if the item is in the array, if it is, do not add 
 
if(array_key_exists($id, $_SESSION['cart_items'])){ 
 
\t // redirect to product list and tell the user it was added to cart 
 
\t header('Location: products.php?action=exists&id' . $id . '&name=' . $name); 
 
} 
 

 
//If not, then add the item to the array 
 
else{ 
 
\t $_SESSION['cart_items'][$id]=$name; 
 
\t 
 
\t //Redirects to product list 
 
\t header('Location: products.php?action=added&id' . $id . '&name=' . $name); 
 
} 
 
?>
Корзина страница:

<?php 
 
session_start(); 
 

 
$page_title="Cart"; 
 
include 'layout_head.php'; 
 

 
$action = isset($_GET['action']) ? $_GET['action'] : ""; 
 
$name = isset($_GET['name']) ? $_GET['name'] : ""; 
 

 
if($action=='removed'){ 
 
\t echo "<div class='Wow danger'>"; 
 
\t \t echo "<strong>{$name}</strong> was removed from your cart."; 
 
\t echo "</div>"; 
 
} 
 

 
else if($action=='quantity_updated'){ 
 
\t echo "<div class='Wow danger'>"; 
 
\t \t echo "<strong>{$name}</strong> quantity was updated."; 
 
\t echo "</div>"; 
 
} 
 

 
if(count($_SESSION['cart_items'])>0){ 
 

 
\t //Gets the Product Id's 
 
\t $ids = ""; 
 
\t foreach($_SESSION['cart_items'] as $id=>$value){ 
 
\t \t $ids = $ids . $id . ","; 
 
\t } 
 
\t 
 
\t //Removes the comma 
 
\t $ids = rtrim($ids, ','); 
 
\t 
 
\t //Starts Table 
 
\t echo "<table class='table table-hover table-responsive table-bordered'>"; 
 
    
 
     // Table heading 
 
     echo "<tr>"; 
 
      echo "<th class='textAlignLeft'>Product Name</th>"; 
 
      echo "<th>Price (USD)</th>"; 
 
\t \t \t echo "<th>Action</th>"; 
 
     echo "</tr>"; 
 
\t \t 
 
\t \t $query = "SELECT id, name, price FROM products WHERE id IN ({$ids}) ORDER BY name"; 
 
\t \t 
 
\t \t $stmt = $con->prepare($query); 
 
\t \t $stmt->execute(); 
 

 
\t \t $total_price=0; 
 
\t \t while ($row = $stmt->fetch(PDO::FETCH_ASSOC)){ 
 
      extract($row); 
 
\t \t \t 
 
\t \t \t echo "<tr>"; 
 
\t \t \t \t echo "<td>{$name}</td>"; 
 
\t \t \t \t echo "<td>&#36;{$price}</td>"; 
 
\t \t \t \t echo "<td>"; 
 
\t \t \t \t \t echo "<a href='remove_from_cart.php?id={$id}&name={$name}' class='btn btn-danger'>"; 
 
\t \t \t \t \t \t echo "<span class='shopping cart-remove'></span> Remove from cart"; 
 
\t \t \t \t \t echo "</a>"; 
 
\t \t \t \t echo "</td>"; 
 
      echo "</tr>"; 
 
\t \t \t 
 
\t \t \t $total_price+=$price; 
 
\t \t } 
 
\t \t 
 
\t \t echo "<tr>"; 
 
\t \t \t \t echo "<td><b>Total</b></td>"; 
 
\t \t \t \t echo "<td>&#36;{$total_price}</td>"; 
 
\t \t \t \t echo "<td>"; 
 
\t \t \t \t \t echo "<a href='#' class='success'>"; 
 
\t \t \t \t \t \t echo "<span class='shopping-cart'></span> Checkout"; 
 
\t \t \t \t \t echo "</a>"; 
 
\t \t \t \t echo "</td>"; 
 
      echo "</tr>"; 
 
\t \t 
 
\t echo "</table>"; 
 
} 
 

 
else{ 
 
\t echo "<div class='Wow danger'>"; 
 
\t \t echo "<strong>No products found</strong> in your cart!"; 
 
\t echo "</div>"; 
 
} 
 

 
include 'layout_foot.php'; 
 
?>

+0

Извините, только что разместил его. – squz174

ответ

0

Какова реальная проблема здесь? Это ничего сложного, чем то, что вы делали раньше. Вы будете иметь некоторые таблицы, как:

  • предложения (идентификатор, цена, название)
  • пользователей (номер, имя)
  • подписки (идентификатор, offer_id, user_id, STARTDATE)

Просто добавьте новую строку в подписку для каждой услуги, купленной пользователем, и рассчитайте сумму его счета. Затем просто запускайте CRON каждый день, например, и отправляйте электронное письмо в зависимости от того, нужно ли пользователю оплачивать его подписку или нет.

+0

Но как мне это сделать в PHP? – squz174

+0

Ничего сложного в этом, вы уверены, что понимаете PHP? Может быть, вам стоит попробовать снова прочитать учебник – Sakuto

+0

Я просто хочу немного намека. Как я уже сказал, я новичок в этом. – squz174