Mis 25 mejores fragmentos de WooCommerce en WordPress

Los tiempos han pasado… Pasó 6 meses del trabajo que le gustaría trabajar con WooThemes como soporte técnico del tiempo completo de WooCommerce. Tienes 6 meses gracias a WooCommerce y codifica © ¡mucho!) de fragmentos relacionados con WooCommerce. En realidad, WooCommerce es una herramienta muy poderosa y ampliable. Tienes muchas pandillas que se pueden usar para todo, y esto es lo que tiene que hacer WooCommerce. Aquí hay una lista de fragmentos que se adaptan a los extremos de domossel de domossel me fragment; functions.php dentro del tema de la alfombra:
1 - Agrega el tipo de pago para la gestión electrónica del administrador de WooCommerce
add_action( 'woocommerce_email_after_order_table', 'add_payment_method_to_admin_new_order', 15, 2 );
function add_payment_method_to_admin_new_order( $order, $is_admin_email ) {
if ( $is_admin_email ) {
echo '
Payment Method: ' . $order->payment_method_title . '
';
}
}
2 - Venta de productos por pina/lina
remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_upsell_display', 15 );
add_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_upsells', 15 );
if ( ! function_exists( 'woocommerce_output_upsells' ) ) {
function woocommerce_output_upsells() {
woocommerce_upsell_display( 3,3 ); // Display 3 products in rows of 3
}
}
3 - Eliminar las categorías de productos de Pina Gina de la Tienda
add_action( 'pre_get_posts', 'custom_pre_get_posts_query' );
function custom_pre_get_posts_query( $q ) {
if ( ! $q->is_main_query() ) return;
if ( ! $q->is_post_type_archive() ) return;
if ( ! is_admin() && is_shop() && ! is_user_logged_in() ) {
$q->set( 'tax_query', array(array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => array( 'color', 'flavor', 'spices', 'vanilla' ), // Don't display products in these categories on the shop page
'operator' => 'NOT IN'
)));
}
remove_action( 'pre_get_posts', 'custom_pre_get_posts_query' );
}
4 - Prevod rápidamente cualquier cadena
add_filter('gettext', 'translate_text');
add_filter('ngettext', 'translate_text');
function translate_text($translated) {
$translated = str_ireplace('Choose and option', 'Select', $translated);
return $translated;
}
5 - Excluir una categoría del widget de categoría de WooCommerce
add_filter( 'woocommerce_product_categories_widget_args', 'woo_product_cat_widget_args' );
function woo_product_cat_widget_args( $cat_args ) {
$cat_args['exclude'] = array('16');
return $cat_args;
}
6 - Agregue una campaña personalizada con una variación de producto
//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 ) { ?>
7 - Reemplace "Agotado" por "vendido"
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;
}
8 - Mostrar el "Producto que está en el carrito" y el lugar de la botella "Agregado en el carrito".
/**
* 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 __('Already in cart - Add Again?', 'woocommerce');
}
}
return __('Add to cart', '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 __('Already in cart', 'woocommerce');
}
}
return __('Add to cart', 'woocommerce');
}
9 - Seleccione la calificación del producto en la vista de categoría
add_filter( 'woocommerce_subcategory_count_html', 'woo_remove_category_products_count' );
function woo_remove_category_products_count() {
return;
}
10 - Hacer que los campos de pago de la cuenta sean obligatorios
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;
}
11 - Cambiar el nombre de un producto plaga
add_filter( 'woocommerce_product_tabs', 'woo_rename_tab', 98);
function woo_rename_tab($tabs) {
$tabs['description']['title'] = 'More info';
return $tabs;
}
12 - Lista de categorías de productos de WooCommerce
$args = array(
'number' => $number,
'orderby' => $orderby,
'order' => $order,
'hide_empty' => $hide_empty,
'include' => $ids
);
$product_categories = get_terms( 'product_cat', $args );
$count = count($product_categories);
if ( $count > 0 ){
echo "
";}
13 - Sustitución del título de la canción Jina de la Tienda
add_filter( 'woocommerce_page_title', 'woo_shop_page_title');
function woo_shop_page_title( $page_title ) {
if( 'Shop' == $page_title) {
return "My new title";
}
}
14 - Cambiar el título de un widget
/*
* Change widget title
*/
add_filter( 'widget_title', 'woo_widget_title', 10, 3);
function woo_widget_title( $title, $instance, $id_base ) {
if( 'onsale' == $id_base) {
return "My new title";
}
}
15 - Eliminar la preconfiguración de WooCommerce
add_filter( 'woocommerce_catalog_settings', 'woo_remove_catalog_options' );
function woo_remove_catalog_options( $catalog ) {
unset($catalog[23]); //Trim zeros (no)
unset($catalog[22]); //2 decimals
unset($catalog[21]); //decimal sep (.)
unset($catalog[20]); //thousand sep (,)
unset($catalog[19]); //currency position (left)
unset($catalog[18]); //currency position (left)
unset($catalog[5]); // ajax add to cart (no)
return $catalog;
}
16 - Cambiar la dirección del control electrónico "desde"
function woo_custom_wp_mail_from() {
global $woocommerce;
return html_entity_decode( '[email protected]' );
}
add_filter( 'wp_mail_from', 'woo_custom_wp_mail_from', 99 );
17 - Decodificar el nombre de la versión electrónica de WooCommerce
function woo_custom_wp_mail_from_name() {
global $woocommerce;
return html_entity_decode( get_option( 'woocommerce_email_from_name' ) );
}
add_filter( 'wp_mail_from_name', 'woo_custom_wp_mail_from_name', 99 );
function woo_custom_wp_mail_from() {
global $woocommerce;
return html_entity_decode( get_option( 'woocommerce_email_from' ) );
}
add_filter( 'wp_mail_from_name', 'woo_custom_wp_mail_from_name', 99 );
18 - Identificador de devolución de producto decadente
function woo_get_featured_product_ids() {
// Load from cache
$featured_product_ids = get_transient( 'wc_featured_products' );
// Valid cache found
if ( false !== $featured_product_ids )
return $featured_product_ids;
$featured = get_posts( array(
'post_type' => array( 'product', 'product_variation' ),
'posts_per_page' => -1,
'post_status' => 'publish',
'meta_query' => array(
array(
'key' => '_visibility',
'value' => array('catalog', 'visible'),
'compare' => 'IN'
),
array(
'key' => '_featured',
'value' => 'yes'
)
),
'fields' => 'id=>parent'
) );
$product_ids = array_keys( $featured );
$parent_ids = array_values( $featured );
$featured_product_ids = array_unique( array_merge( $product_ids, $parent_ids ) );
set_transient( 'wc_featured_products', $featured_product_ids );
return $featured_product_ids;
}
19 - Campamento personalizado agregado para editar en Gina de Directiones
// add fields to edit address page
function woo_add_edit_address_fields( $fields ) {
$new_fields = array(
'date_of_birth' => array(
'label' => __( 'Date of birth', 'woocommerce' ),
'required' => false,
'class' => array( 'form-row' ),
),
);
$fields = array_merge( $fields, $new_fields );
return $fields;
}
add_filter( 'woocommerce_default_address_fields', 'woo_add_edit_address_fields' );
20 - Mostrar código corto del catá logo de productos a la venta
function woocommerce_sale_products( $atts ) {
global $woocommerce_loop;
extract(shortcode_atts(array(
'per_page' => '12',
'columns' => '4',
'orderby' => 'date',
'order' => 'desc'
), $atts));
$woocommerce_loop['columns'] = $columns;
$args = array(
'post_type' => 'product',
'post_status' => 'publish',
'ignore_sticky_posts' => 1,
'posts_per_page' => $per_page,
'orderby' => $orderby,
'order' => $order,
'meta_query' => array(
array(
'key' => '_visibility',
'value' => array('catalog', 'visible'),
'compare' => 'IN'
),
array(
'key' => '_sale_price',
'value' => 0,
'compare' => '>',
'type' => 'NUMERIC'
)
)
);
query_posts($args);
ob_start();
woocommerce_get_template_part( 'loop', 'shop' );
wp_reset_query();
return ob_get_clean();
}
add_shortcode('sale_products', 'woocommerce_sale_products');
21 - Tener productos a la venta
function woo_have_onsale_products() {
global $woocommerce;
// Get products on sale
$product_ids_on_sale = array_filter( woocommerce_get_product_ids_on_sale() );
if( !empty( $product_ids_on_sale ) ) {
return true;
} else {
return false;
}
}
// Example:
if( woo_have_onsale_products() ) {
echo 'have onsale products';
} else {
echo 'no onsale product';
}
22 - Establecer la cantidad mínima de dinero
add_action( 'woocommerce_checkout_process', 'wc_minimum_order_amount' );
function wc_minimum_order_amount() {
global $woocommerce;
$minimum = 50;
if ( $woocommerce->cart->get_cart_total(); add_error( sprintf( 'You must have an order with a minimum of %s to place your order.' , $minimum ) );
}
}
23 - Ordenar por precio, hacer un título en el título Джина де ла тиенда
add_filter('woocommerce_default_catalog_orderby', 'custom_default_catalog_orderby');
function custom_default_catalog_orderby() {
return 'date'; // Can also use title and price
}
24 - Edite el archivo Agregado al carrito a la pájina de pago
add_filter ('add_to_cart_redirect', 'redirect_to_checkout');
function redirect_to_checkout() {
global $woocommerce;
$checkout_url = $woocommerce->cart->get_checkout_url();
return $checkout_url;
}
25 - Agrega el destino del circuito eléctrico cuando está lleno
function woo_extra_email_recipient($recipient, $object) {
$recipient = $recipient . ', [email protected]';
return $recipient;
}
add_filter( 'woocommerce_email_recipient_customer_completed_order', 'woo_extra_email_recipient', 10, 2);
¡Esta aquí! Espero que encuentres estos fragmentos, todos los probados y funcionales, pero tienes algunos otros problemas, tienes que jugar en la sección de comentarios. ¡Muévete del camino! 😠‰

Deja una respuesta