Script pour bloquer plusieurs méthodes livraison

  • Posts: 263
  • Thank you received: 11
9 years 10 months ago #163159

Bonjour à tous,
Sur lapagept.com, nous avons un 7 ou 8 méthodes de livraison différentes. Quand une nouvelle méthode de livraison est ajoutée, il faut la bloquer dans des centaines de produits qui ne sont pas concernés.

Voici donc notre script pour bloquer autant de méthodes de livraison que vous le voulez pour autant de produits que vous le voulez.

Notez que les id de produits doivent être consécutifs. Vous pouvez par exemple bloquer les méthodes de livraison d'id 1,3,5,7,8,9 pour les produits d'id 1234 à 2344. En un clic!!!!!

Si les produits à modifier ont déjà des méthodes de livraison bloquées, tout est effacé de la table hikashop_shipping_price et refait à neuf.

<?php
define('_JEXEC', 1);
define('DS', DIRECTORY_SEPARATOR);

if (!defined('_JDEFINES')) {
    define('JPATH_BASE', '/Users/Flooder/Sites/pt4');
    require_once JPATH_BASE.'/includes/defines.php';
}

require_once JPATH_BASE.'/includes/framework.php';

// Mark afterLoad in the profiler.
JDEBUG ? $_PROFILER->mark('afterLoad') : null;

// Instantiate the application.
$app = JFactory::getApplication('site');

// Initialise the application.
$app->initialise();

	$db = JFactory::getDBO();

	$query = 'INSERT INTO tosdq_hikashop_shipping_price (shipping_id, shipping_price_ref_id, shipping_price_min_quantity, shipping_price_value, shipping_fee_value) VALUES ';
	if (isset($_POST["iddepart"])) {
	    $start = $_POST["iddepart"];
	    $end = $_POST["idfin"];
	    $methodes = explode(',',$_POST["methods"]);
	    $first = true;
	    for ($id = $start; $id < $end; $id++)
	    {
		$queryyy = 'DELETE FROM tosdq_hikashop_shipping_price WHERE shipping_price_ref_id='. (string)$id;
		echo $queryyy.'<br />';
		$db->setQuery($queryyy);
		$rowsss = $db->query();
	    }
	    
	    for ($id = $start; $id <= $end; $id++)
	    {
	    $queryyy = 'DELETE FROM tosdq_hikashop_shipping_price WHERE shipping_price_ref_id='. (string)$id;
	    echo $queryyy.'<br />';
	    $db->setQuery($queryyy);
	    $rowsss = $db->query();
	
		foreach($methodes as $methode) {
		    if (!$first) $query .= ', ';
		    $query .= ' (\''.(string)$methode.'\',\''.(string)$id.'\',\'1\',\'-1\',\'-1\')';
		    $first = false;
	    
		}
		
	    }	
		    
	    echo $query.'<br />';		
	    $db->setQuery($query);
	    $rows = $db->query();
	}			
		
?>

<!DOCTYPE HTML>
<html> 
<body>
	    
<form action="BlockShippingMethods.php" method="post">
    <p>ID produit depart : <input type="text" name="iddepart"></p>
    <p>ID produit fin : <input type="text" name="idfin"></p>

    <p>IDs shipping methods a bloquer (separees par virgule) : <input type="text" name="methods"></p>
    <input type="submit">
</form>
<?php 		echo "zsdaSDA"."\r\n"."ASDasfdASD";		
 ?>
 <br />
<img src="./shippingmethods.png" /> 
</body>
</html>


Attachments:
Last edit: 9 years 10 months ago by Flooder.
The following user(s) said Thank You: Jerome

Please Log in or Create an account to join the conversation.

Time to create page: 0.066 seconds
Powered by Kunena Forum