5 magnifiques astuces WooCommerce #4

E-commerce, WooCommerce, WordPress

Quatrième partie pour la série des astuces d’intégration pour WooCommerce. Pour rappel, WooCommerce est basé sur WordPress.

5 Best WooCommerce snippets for WordPress, part 4

Les bouts de code doivent être placés dans le fichier functions.php de votre thème pour fonctionner.
C’est parti donc pour cette quatrième série de 5 bouts de code à utiliser sur WooCommerce :

1 – Rendre des champs d’inscription client requis

[php]add_filter( ‘woocommerce_checkout_fields’, ‘woo_filter_account_checkout_fields’ );
function woo_filter_account_checkout_fields( $fields ) {
$fields[‘account’][‘account_username’][‘required’] = true;
$fields[‘account’][‘account_password’][‘required’] = true;
$fields[‘account’][‘account_password-2’][‘required’] = true;
return $fields;
}[/php]

2 – Masquer le compteur de produits dans la page catégorie

[php]add_filter( ‘woocommerce_subcategory_count_html’, ‘woo_remove_category_products_count’ );
function woo_remove_category_products_count() {
return;
}[/php]

3 – Afficher « produit déjà dans le panier » au lieu du bouton « ajouter au panier »

[php]/**
* Change the add to cart text on single product pages
*/
add_filter( ‘woocommerce_product_single_add_to_cart_text’, ‘woo_custom_cart_button_text’ );
function woo_custom_cart_button_text() {
global $woocommerce;
foreach($woocommerce->cart->get_cart() as $cart_item_key => $values ) {
$_product = $values[‘data’];
if( get_the_ID() == $_product->id ) {
return __(‘Produit déjà dans le panier – Ajouter à nouveau ?’, ‘woocommerce’);
}
}
return __(‘Ajouter au panier’, ‘woocommerce’);
}
/**
* Change the add to cart text on product archives
*/
add_filter( ‘add_to_cart_text’, ‘woo_archive_custom_cart_button_text’ );
function woo_archive_custom_cart_button_text() {
global $woocommerce;
foreach($woocommerce->cart->get_cart() as $cart_item_key => $values ) {
$_product = $values[‘data’];
if( get_the_ID() == $_product->id ) {
return __(‘Produit déjà dans le panier’, ‘woocommerce’);
}
}
return __(‘Ajouter au panier’, ‘woocommerce’);
}[/php]

4 – Remplacer « out of stock » par « sold »

Il faut ensuite traduire via un plugin tel que Codestyling Localization pour avoir le texte en français.
[php]add_filter(‘woocommerce_get_availability’, ‘availability_filter_func’);
function availability_filter_func($availability)
{
$availability[‘availability’] = str_ireplace(‘Out of stock’, ‘Sold’, $availability[‘availability’]);
return $availability;
}[/php]

5 – Ajouter un champ personnaliser à une déclinaison produit

[php]//Display Fields
add_action( ‘woocommerce_product_after_variable_attributes’, ‘variable_fields’, 10, 2 );
//JS to add fields for new variations
add_action( ‘woocommerce_product_after_variable_attributes_js’, ‘variable_fields_js’ );
//Save variation fields
add_action( ‘woocommerce_process_product_meta_variable’, ‘variable_fields_process’, 10, 1 );
function variable_fields( $loop, $variation_data ) {
?>
<tr>
<td>
<div>
<label></label>
<input type="text" size="5" name="my_custom_field[]" value=""/>
</div>
</td>
</tr>
<tr>
<td>
<div>
<label></label>
</div>
</td>
</tr>
<?php
}
function variable_fields_process( $post_id ) {
if (isset( $_POST[‘variable_sku’] ) ) :
$variable_sku = $_POST[‘variable_sku’];
$variable_post_id = $_POST[‘variable_post_id’];
$variable_custom_field = $_POST[‘my_custom_field’];
for ( $i = 0; $i < sizeof( $variable_sku ); $i++ ) :
$variation_id = (int) $variable_post_id[$i];
if ( isset( $variable_custom_field[$i] ) ) {
update_post_meta( $variation_id, ‘_my_custom_field’, stripslashes( $variable_custom_field[$i] ) );
}
endfor;
endif;
}[/php]
A très vite pour le dernier billet de la série 🙂
 

Laisser un commentaire

Consultez les autres articles