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 / part11_sql_table.php
Created April 30, 2017 09:35
Créer une table SQL WordPress personnalisée pour stocker les données de commission
<?php
/**
* Si inexistante, on créée la table SQL "commissions" après l'activation du thème
*/
global $wpdb;
$charset_collate = $wpdb->get_charset_collate();
$commissions_table_name = $wpdb->prefix . 'commissions';
@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 / 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 / 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 / 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 / wc.description_code_promo.php
Created September 20, 2017 16:08
Afficher la description d'un code promo sur la page de commande WooCommerce
<?php
/**
* Afficher la description d'un code promo
* Illustré sur http://media.mosaika.fr/mcbj
*/
function msk_display_coupon_description($value, $coupon) {
$new_value = sprintf('%1$s <small class="coupon-description">%2$s</small>', $value, $coupon->get_description());
return $new_value;
}
@psaikali
psaikali / wc.suppression_tags_produits.php
Created September 20, 2017 16:15
Supprimer les "Etiquettes produits" (tags) de WooCommerce
<?php
/**
* Faire disparaitre les étiquettes produits (tags) des produits WooCommerce
* Exemple : http://media.mosaika.fr/mcuZ
*/
function msk_unregister_post_tag() {
register_taxonomy('product_tag', array());
}
add_action('init', 'msk_unregister_post_tag');
@psaikali
psaikali / wc.ajout_champ_code_barre_produit.php
Created September 20, 2017 16:24
Ajouter un champ "Code-barre" aux produits WooCommerce
<?php
/**
* Ajouter un champ "Code-barre" aux produits WooCommerce
* Ce nouveau champ s'affichera, ici, dans l'onglet "Inventaire" dans le back-office d'un produit WooCommerce
*/
function msk_add_barcode_product_fields() { ?>
<div class="options_group">
<?php
@psaikali
psaikali / wc.remplacer_virugle_par_point_prix_woocommerce.php
Created September 20, 2017 16:36
Remplacer la virgule "," des prix WooCommerce par un point "."
<?php
/**
* Séparation des décimales des prix WooCommerce : remplacer la virgule par un point
*/
function msk_wc_price_args($args) {
$args['decimal_separator'] = ',';
return $args;
}
add_filter('wc_price_args', 'msk_wc_price_args');
@psaikali
psaikali / wc.ajouter_onglet_page_produit_woocommerce.php
Last active September 20, 2017 17:10
Ajouter un onglet sur la page d'un produit WooCommerce
<?php
/**
* Ajouter un onglet 'Nouvel onglet' dans les onglets WooCommerce sur la page produit
* Tutoriel complet : https://mosaika.fr/woocommerce-ajouter-onglet-page-produit/
*/
function msk_woocommerce_new_tab($tabs) {
global $product;
$tabs['nouvel_onglet'] = array(