Skip to content

Instantly share code, notes, and snippets.

View psaikali's full-sized avatar
🥑
WordPress'in & React'in

Pierre Saikali psaikali

🥑
WordPress'in & React'in
View GitHub Profile
@psaikali
psaikali / part5_commission_use1.php
Created May 28, 2017 08:53
Permettre à un client WooCommerce d’utiliser sa cagnotte de points (parrain) comme réduction sur son panier
<?php
function msk_display_use_points_checkbox() {
// On récupère le nombre de points de l'utilisateur
$user_points = msk_get_customer_commission_balance(get_current_user_id())['balance'];
// Si l'acheteur a des points...
if ($user_points > 0) {
if (isset($_POST['post_data'])) {
parse_str($_POST['post_data'], $form_data);
@psaikali
psaikali / part4_commission_gain.php
Last active May 8, 2017 12:20
Attribuer une récompense à un parrain après un achat WooCommerce
<?php
function msk_save_commissions_gains_from_order_items($order_id, $old_status, $new_status) {
global $wpdb;
$commissions_table_name = $wpdb->prefix . 'commissions';
// On récupère la commande concernée et les valeurs importantes
$order = wc_get_order($order_id);
$order_items = $order->get_items();
$order_customer_id = $order->get_customer_id();
$type = 'gain';
@psaikali
psaikali / part31_form_shortcode.php
Last active May 1, 2017 09:10
Créer un formulaire de proposition de produit WooCommerce
<?php
/**
* Shortcode pour afficher le formulaire pour proposer un produit
*/
add_shortcode('msk_formulaire_proposer_produit', 'msk_shortcode_product_submission');
function msk_shortcode_product_submission($atts) {
// On ajoute un champ caché pour savoir si c'est un utilisateur lambda ou l'admin qui remplit le formulaire
$is_admin_hidden_field = (is_user_logged_in() && current_user_can('manage_options')) ? 'on' : 'off';
@psaikali
psaikali / part2_wc_fields1.php
Last active April 30, 2017 12:53
Ajouter un onglet "Parrainage" et des champs de commission aux produits WooCommerce
<?php
/**
* On ajoute un onglet "Parrainage" dans le back-office d'un produit WooCommerce
*/
function msk_add_commission_product_tab($tabs) {
$tabs = array_insert_after('general', $tabs, 'commission', array(
'label' => __('Parrainage', 'mosaika'),
'target' => 'commission_product_data',
'class' => array()
@psaikali
psaikali / 0usage.php
Last active April 2, 2017 13:25
Utiliser des jolis templates d'e-mails dans WordPress et remplacer des mots par des variables
<?php
/*
* Usage de la fonction msk_send_mail
*/
$destinataire = 'pierre@mosaika.fr';
$data = array(
'prenom' => 'Bruce',
@psaikali
psaikali / delete_woocommerce_product_image_sizes.php
Last active April 2, 2017 09:57
Supprimer les tailles d'images media créées par WooCommerce sur les produits
/**
* Remove WC image sizes, useless
*/
function msk_wc_remove_image_sizes() {
remove_image_size('shop_thumbnail');
remove_image_size('shop_catalog');
remove_image_size('shop_single');
}
add_action('init', 'msk_wc_remove_image_sizes', 90);
@psaikali
psaikali / sale-flash.php
Created June 27, 2015 07:52
WordPress WooCommerce : afficher le (plus grand) pourcentage de réduction dans le macaron de promo d'un produit (woocommerce/loop/sale-flash.php)
<?php
/**
* Single Product Sale Flash
*
* @author WooThemes
* @package WooCommerce/Templates
* @version 1.6.4
*/
if ( ! defined( 'ABSPATH' ) ) {
@psaikali
psaikali / functions.php
Created June 4, 2015 09:15
Enregistrer les valeurs des nouveaux champs produits WooCommerce
/*************************************************************************************************
* On enregistre les valeurs de LOVES & HATES lorsqu'on enregistre un post
*************************************************************************************************/
function msk_save_loves_hates_product_fields($product_id, $post, $update) {
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;
if ($post->post_type == 'product') {
if (isset($_POST['loves'])) {
$loves = (int)$_POST['loves'];
update_post_meta($product_id, 'loves', $loves);
@psaikali
psaikali / functions.php
Created June 4, 2015 09:05
On ajoute deux champs de type text à l'onglet "Avancé" de la metabox produit WooCommerce
/*************************************************************************************************
* On ajoute 2 champs (post meta ou custom field) aux produits WC dans l'onglet "Avancé"
*************************************************************************************************/
function msk_add_loves_hates_fields_to_product() {
woocommerce_wp_text_input(
array(
'id' => 'loves',
'data_type' => 'decimal',
'label' => __('Loves', 'msk'),
'placeholder' => __('Amount of love', 'msk'),
@psaikali
psaikali / woocommerce-input-helpers.php
Created June 4, 2015 08:43
Ajouter des champs aux produits WooCommerce : les fonctions helper à disposition pour générer les inputs. Résultat : http://img.saika.li/bWk6
/*************************************************************************************************
* On ajoute des champs de test pour se repérer, dans l'onglet Général
* Résultat visuel : http://img.saika.li/bWk6
*************************************************************************************************/
function msk_add_test_field_data() {
echo '<div style="background:#f8fbca; padding:1em;">';
echo '<h4>Testons les différents types de champs</h4>';
// Champ de type text