Créer une page en construction WordPress

à mettre dans le functions.php
et faire la page.html

function my_page_template_redirect()
{
    if( ! is_user_logged_in() )
    {
        wp_redirect(  '/page.html'  );
        exit();
    }
}
add_action( 'template_redirect', 'my_page_template_redirect' );

ou alors

function wp_maintenance_mode(){
    if( !is_user_logged_in()){
        wp_die('

BIENTÔT DISPONIBLE



'); } } add_action('get_header', 'wp_maintenance_mode');

Trame pour e-commerce Prestashop

– Multiboutique
– Multilangue
– Multi devise

– Produits : utilisation des déclinaisons ?

– Gestion des stocks
Si oui. Commande possible si hors stock ?
– Frais de port (La poste ? par prix/par poids/forfaitaire)

Paiement

  •  Chèque :  Quel ordre ?
  • Virement : Infos compte
  • Paypal : Quel compte ?
  • CB : Quel banque ?

– Alerte lors d’un nouvelle commande ? vers quellle adresse e-mail ?
– Génération des factures dans le compte client ? Si oui, quelle mention légales en bas de page  ?

– CGV
-Mentions légales

Envoi d’une newsletter

A demander au client

  •  Sujet
  • Adresse d expédition (tester si possibilité de valider tout le domaine ou pas )
  • Adresse de réponse
  • Vérifier si adresse mail créée et existante

Code

Désinscription

Pour vous désinscrire à la liste de diffusion, <a target= »_blank » title= »Désincription Newsletter » href= »[[UNSUB_LINK_FR]] »>Cliquez ici</a>

Version en ligne

<a href= »[[PERMALINK]] » target= »_blank » style= »line-height:1;vertical-align:bottom;color:#0f0f0f;font-family:arial;font-size:12px;border:none »>Voir la version en ligne</a>

htaccess

Redirect permanent

Redirect permanent /ancien_repertoire http://nouveau-site.tld/nouveau_repertoire
Redirect permanent /ancien_fichier.php http://site.tld/nouveau_fichier.php

Rediriger tout sauf un dossier

RewriteEngine on
RewriteCond %{REQUEST_URI} !doli/(.*)$
RewriteRule (.*) http://aenor-voeux.com/dev02/ [QSA,R=301,L]

Rediriger le nom de domaine

#Redirection de l'ancien nom de domaine
RewriteCond %{HTTP_HOST} ^(?:www\.)?atelier-b-attitude\.com [NC]
RewriteRule ^/?(.*) https://www.sweetcasita.fr/$1 [L,R=301]

Rediriger avec des paramètres dans l’url

RewriteCond %{QUERY_STRING} ^option=com_content&view=category&layout=blog&id=93&Itemid=618$
RewriteRule ^index\.php$ https://www.leventdessignes.fr/saison/? [L,R=301]

Autres exemples

Aénor voeux

– Créer les produits avec 2 déclinaisons  : une avec attribut format vierge et l’autre avec attribut format personnalisé
– Ajouter les règles de prix dans la fiche produit
– Ajouter la personnalisation. 1 de type fichier, 3 de type texte (personnalisation,Texte et Adresse et coordonnées)

étendre la perso à tous les produits (aen-admin/genererSQL.php):

ini_set('display_errors','on');
error_reporting(E_ALL);

define('_PS_ADMIN_DIR_', getcwd());
define('PS_ADMIN_DIR', _PS_ADMIN_DIR_); // Retro-compatibility

include(PS_ADMIN_DIR.'/../config/config.inc.php');

$products = Db::getInstance()->ExecuteS('SELECT id_product	FROM '._DB_PREFIX_.'product p');

foreach($products as $product)
{
	#image
	$sql = 'INSERT INTO '._DB_PREFIX_.'customization_field (`id_product`, `type`, `required`)
	VALUES ('.$product['id_product'].',0,0)';
	Db::getInstance()->ExecuteS($sql);
	$id_custom = Db::getInstance()->Insert_ID(); 
	$sql = 'INSERT INTO '._DB_PREFIX_.'customization_field_lang (`id_customization_field`, `id_lang`, `name`)
	VALUES ('.$id_custom.',1,"")';
	Db::getInstance()->ExecuteS($sql);
	
	#perso
	$sql = 'INSERT INTO '._DB_PREFIX_.'customization_field (`id_product`, `type`, `required`)
	VALUES ('.$product['id_product'].',1,0)';
	Db::getInstance()->ExecuteS($sql);
	$id_custom = Db::getInstance()->Insert_ID(); 
	$sql = 'INSERT INTO '._DB_PREFIX_.'customization_field_lang (`id_customization_field`, `id_lang`, `name`)
	VALUES ('.$id_custom.',1,"personnalisation")';
	Db::getInstance()->ExecuteS($sql);
	
	#Texte
	$sql = 'INSERT INTO '._DB_PREFIX_.'customization_field (`id_product`, `type`, `required`)
	VALUES ('.$product['id_product'].',1,0)';
	Db::getInstance()->ExecuteS($sql);
	$id_custom = Db::getInstance()->Insert_ID(); 
	$sql = 'INSERT INTO '._DB_PREFIX_.'customization_field_lang (`id_customization_field`, `id_lang`, `name`)
	VALUES ('.$id_custom.',1,"Texte")';
	Db::getInstance()->ExecuteS($sql);
	
	#Adresse et coordonnées
	$sql = 'INSERT INTO '._DB_PREFIX_.'customization_field (`id_product`, `type`, `required`)
	VALUES ('.$product['id_product'].',1,0)';
	Db::getInstance()->ExecuteS($sql);
	$id_custom = Db::getInstance()->Insert_ID(); 
	echo $sql = 'INSERT INTO '._DB_PREFIX_.'customization_field_lang (`id_customization_field`, `id_lang`, `name`)
	VALUES ('.$id_custom.',1,"Adresse et coordonnées")';
	Db::getInstance()->ExecuteS($sql);
}

Puis

UPDATE `avps_product` SET `customizable` = 1,`uploadable_files` = 1,`text_fields` = 3 WHERE 1 ;
UPDATE `avps_product_shop` SET `customizable` = 1,`uploadable_files` = 1,`text_fields` = 3 WHERE 1;

Pour modifier les prix de base des déclinaisons

UPDATE `avps_product_attribute` pa
INNER JOIN avps_product p ON pa.`id_product`= p.`id_product`
INNER JOIN avps_product_attribute_combination pac ON pa.`id_product_attribute`=pac.`id_product_attribute`
SET pa.price = 0.84
WHERE id_category_default IN(12,13) AND `id_attribute` IN(7,10) AND p.id_product IN (SELECT `id_product` FROM `avps_category_product` WHERE `id_category`=9 )

UPDATE `avps_product_attribute_shop` pas
INNER JOIN avps_product_attribute pa ON pas.`id_product_attribute`= pa.`id_product_attribute`
SET pas.price = pa.price

– Recopier les prix spécifiques à partir d’un produit modèle vers tous les autres (aen-admin/genererSQL.php)

## Insertion des prix spécifiques
# vierge 11 / perso 7,10
$product_modele = 5;
$product_attribute_modele = 23;
$attribute_modele = '7,10';
$sql = 'SELECT pa.id_product,pa.id_product_attribute 
		FROM `'._DB_PREFIX_.'product_attribute` pa 
		INNER JOIN '._DB_PREFIX_.'product p ON pa.`id_product`= p.`id_product` 
		INNER JOIN '._DB_PREFIX_.'product_attribute_combination pac ON pa.`id_product_attribute`=pac.`id_product_attribute` 
		WHERE id_category_default IN(12,13) AND `id_attribute` IN('.$attribute_modele.') AND p.id_product 
					 IN (SELECT `id_product` FROM `'._DB_PREFIX_.'category_product` WHERE `id_category`=9 ) 
				AND p.id_product<>'.$product_modele.'
		ORDER BY `pa`.`id_product` ASC ';
$products = Db::getInstance()->ExecuteS($sql);



foreach($products as $product)
{
	
		echo $sql = "INSERT INTO `"._DB_PREFIX_."specific_price`(`id_product`, `id_product_attribute`, `price`, `from_quantity`, `reduction`, `reduction_type`) 
					SELECT '".$product['id_product']."', '".$product['id_product_attribute']."', `price`, `from_quantity`, `reduction`, `reduction_type` 
					FROM `"._DB_PREFIX_."specific_price` 
					WHERE id_product=".$product_modele." AND id_product_attribute = ".$product_attribute_modele.";\r\n";
		
		
		//Db::getInstance()->ExecuteS($sql);
	
}

Pour le regroupement des quantités sur l’ensemble des cartes :
Modifier le calcul de la quantité dans le fichier class/Product.php

$cat_cumul = array(12,13);
$id_category_default = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('SELECT id_category_default FROM `'._DB_PREFIX_.'product` WHERE `id_product` = '.(int)($id_product));

if (in_array($id_category_default,$cat_cumul))
{
	$quantity_cumul = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('SELECT SUM(c.`quantity`) 
			FROM `'._DB_PREFIX_.'cart_product` c INNER JOIN `'._DB_PREFIX_.'product` p USING ( id_product )
			WHERE `id_category_default` IN('.implode(',',$cat_cumul).') AND `id_cart` = '.(int)($id_cart));
	$cart_quantity = $quantity_cumul ? $quantity_cumul : $cart_quantity;
}

Pour ajouter sauver les paramètres de personnalisation directement en appelant le panier et pas dans la page produit. Dans le fichier CartController.php:

$perso_rapido = Tools::getValue('perso_rapido');
if ($perso_rapido & Tools::isSubmit('submitCustomizedDatas'))
{
	/* Product pictures management */
	require_once('images.inc.php');

	$this->pictureUpload($product, $this->context->cart);
	$this->textRecord($product, $this->context->cart);
	
}