+36 70 363 7900 info@grentmedia.hu

Sokan sokféle fejlesztést szeretnének, de sok megoldás megtalálható a neten is webáruházankhoz. A WpExplorer.com-on található 25 megoldás remélem másnak is a segítségére lesz.

Tulajdonképpen a WooCommerce nagyon hatékony webáruház, és könnyen bővíthető. A WooCommerce-ben lévő hook (horog) megoldásokkal szinte bármit meg lehet oldani. Itt van egy lista töredéke amit közzétettek  és ami adaptálhatóak lehetnek bármilyen webáruházba. Ezeket a kódokat az aktuális sablonunk a functions.php fájljába kell implementálni.

Fizetési típus hozzáadása WooCommerce admin emailhez

[php] 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 ‘<p><strong>Payment Method:</strong> ‘ . $order->payment_method_title . ‘</p>’;
}
}[/php]

Up-sells termékek per oldal vagy per sor

[php] 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
}
}
[/php]

 

Termékkategória eltávolítása a webshop oldalról

[php] 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’ );

}
[/php]

 

Gyors fordítás bármely szövegre

[php] add_filter(‘gettext’, ‘translate_text’);
add_filter(‘ngettext’, ‘translate_text’);

function translate_text($translated) {
$translated = str_ireplace(‘Choose and option’, ‘Select’, $translated);
return $translated;
}
[/php]

 

WooCommerce kategória listázó widget-ből kivehetünk bármely kategóriát

[php] 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;
}
[/php]

 

Egy teljesen egyedi mezőt tudunk a termékvariációhoz hozzáadni

[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 ) { ?>
[/php]

 

Lecserélhetjük vele az “Elfogyott” jelzésre a “Nincs raktáron” jelzést.

[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]

 

Megjeleníthetjük a “kosárba gombot” a “termék már a kosárban” felirat helyett

[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 __(‘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’);
}
[/php]

forrás kód

Ez is lehetne egy beépülő kód

A termékszám megjelenítést lehet vele eltüntetni a kategórianézetben

[php] add_filter( ‘woocommerce_subcategory_count_html’, ‘woo_remove_category_products_count’ );

function woo_remove_category_products_count() {
return;
}
[/php]

 

A regisztrációt tehetjük vele kötelezővé a pénztár oldalon

[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]

 

Átnevezhetjük vele a product tab füleket

[php] add_filter( ‘woocommerce_product_tabs’, ‘woo_rename_tab’, 98);
function woo_rename_tab($tabs) {

$tabs[‘description’][‘title’] = ‘More info’;

return $tabs;
}
[/php]

 

Kilistázzuk a WooCommerce termék kategóriákat

[php] $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 "<ul>";
foreach ( $product_categories as $product_category ) {
echo ‘<li><a href="’ . get_term_link( $product_category ) . ‘">’ . $product_category->name . ‘</li>’;

}
echo "</ul>";
}
[/php]

 

Lecserélhetjük a webshop oldalának title részét

[php] add_filter( ‘woocommerce_page_title’, ‘woo_shop_page_title’);

function woo_shop_page_title( $page_title ) {

if( ‘Shop’ == $page_title) {
return "My new title";
}
}
[/php]

 

Cseréljük ki bármely widget címét

[php] /*
* 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";
}
}
[/php]

 

A WooCommerce alapvető beállítását távolíthatjuk el ezzel

[php] 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;
}
[/php]

 

Cseréljük le a “feladó” email címet

[php] function woo_custom_wp_mail_from() {
global $woocommerce;
return html_entity_decode( ‘your@email.com’ );
}
add_filter( ‘wp_mail_from’, ‘woo_custom_wp_mail_from’, 99 );
[/php]

 

Visszafejtjük a feladó nevét a WooCommerce email-ben

[php] 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 );
[/php]

 

A kiemelt termékeket tudjuk vele előszedni

[php] 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;
}
[/php]

 

Egy egyedi mezőt tudunk a cím oldalhoz hozzáadni

[php] // 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’ );
[/php]

 

Gyorskódot tudunk vele megjeleníteni

[php] 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’);
[/php]

 

Van eladó termékünk, jelentessük meg

[php] 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’;
}
[/php]

 

Állítsuk be, hogy mennyi a minimális rendelési mennyiség a termékből

[php] add_action( ‘woocommerce_checkout_process’, ‘wc_minimum_order_amount’ );
function wc_minimum_order_amount() {
global $woocommerce;
$minimum = 50;
if ( $woocommerce->cart->get_cart_total(); < $minimum ) {
$woocommerce->add_error( sprintf( ‘You must have an order with a minimum of %s to place your order.’ , $minimum ) );
}
}
[/php]

 

Állítsuk be a sorrendet webshopunkban, ár-dátum-cím szerint

[php] add_filter(‘woocommerce_default_catalog_orderby’, ‘custom_default_catalog_orderby’);

function custom_default_catalog_orderby() {
return ‘date’; // Can also use title and price
}
[/php]

 

Átirányítjuk a “kosárba” gombot a pénztár oldalra

[php] 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;
}
[/php]

 

Ha a rendelés befejeződött megadható lesz az email címzett

[php] function woo_extra_email_recipient($recipient, $object) {
$recipient = $recipient . ‘, your@email.com’;
return $recipient;
}
add_filter( ‘woocommerce_email_recipient_customer_completed_order’, ‘woo_extra_email_recipient’, 10, 2);
[/php]

Lehet próbálkozni, felhasználni. Sőt, ha van neked is ilyen rövid kódod, küld nyugodtan, hogy más is fel tudja használni.

Forrás: wpexplorer