# Snippets para WooCommerce

Cambia la apariencia y funcionalidades de Joinchat añadiendo algunos filtros PHP en el **functions.php** del tema o utilizando el plugin **[Code Snippets](https://es.wordpress.org/plugins/code-snippets/)**

---

## Botón de producto sólo en productos que no se pueden comprar

En nuestro soporte nos han pedio cómo mostrar el **botón de producto** sólo para productos sin precio. Ésta es una buena opción para productos que sólo se sirven por encargo o que necesitan una conversación previa sobre las necesidades del cliente.

> **Nota:** asegúrate que la posición del botón es una que aparece aunque el producto no tenga precio.

```
/**
 * Disable Joinchat Product Button if product can be purchased
 */
function joinchat_product_button_for_no_purchasable( $settings ) {

	if ( ! is_product() || 'none' === $settings['woo_btn_position'] ) {
		return $settings;
	}

	$product = wc_get_product();

	if ( $product->is_purchasable() ) {
		$settings['woo_btn_position'] = 'none';
	}

	return $settings;

}
add_filter( 'joinchat_get_settings_site', 'joinchat_product_button_for_no_purchasable', 9 );Lenguaje del código: PHP (php)
```

## Botón de producto sólo en productos agotados

En nuestro soporte nos han pedio cómo mostrar el **botón de producto** sólo para productos sin stock. Ésta es una buena opción para productos que temporalmente están agotados, el cliente puede contactar por WhatsApp y recibir la información que busca de primera mano.

> 

> **Nota:** asegúrate que la posición del botón es una que aparece aunque el producto no tenga precio.

```
/**
 * Disable Joinchat Product Button if product is in stock
 */
function joinchat_product_button_for_out_of_stock( $settings ) {

	if ( ! is_product() || 'none' === $settings['woo_btn_position'] ) {
		return $settings;
	}

	$product = wc_get_product();

	if ( $product->is_in_stock() ) {
		$settings['woo_btn_position'] = 'none';
	}

	return $settings;

}
add_filter( 'joinchat_get_settings_site', 'joinchat_product_button_for_out_of_stock', 9 );Lenguaje del código: PHP (php)
```

Si además quieres tener para los productos agotados un primer mensaje distinto al primer mensaje de la tienda puedes usar este código:

```
/**
 * Custom first message for out of stock products
 */
function joinchat_product_out_of_stock_custom_msg( $settings ) {

	if ( ! is_product() ) {
		return $settings;
	}

	$product = wc_get_product();

	if ( ! $product->is_in_stock() ) {
		$settings['message_send'] = 'Veo que *{PRODUCT}* está agotado. ¿Me puedes sugerir algo similar?';
	}

	return $settings;

}
add_filter( 'joinchat_get_settings', 'joinchat_product_out_of_stock_custom_msg' );Lenguaje del código: PHP (php)
```