Friday, June 5, 2015

Filters and hooks for modifying woocommerce

1. Add email recipient when order completed

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);

2.  Redirect add to cart button to checkout page

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;

}

3. Add custom field 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' );

4. Change “from” email address

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 );

5. Change shop page title

add_filter( 'woocommerce_page_title', 'woo_shop_page_title');

function woo_shop_page_title( $page_title ) {  

    if( 'Shop' == $page_title) {
        return "My new title";
    }

}

6. Rename a product tab

add_filter( 'woocommerce_product_tabs', 'woo_rename_tab', 98);

function woo_rename_tab($tabs) {
 $tabs['description']['title'] = 'More info';
 return $tabs;

}

7. Remove “Products” from breadcrumb

function woo_custom_filter_breadcrumbs_trail ( $trail ) {
  foreach ( $trail as $k => $v ) {
    if ( strtolower( strip_tags( $v ) ) == 'products' ) {
      unset( $trail[$k] );
      break;
    }
  }
  return $trail;

}

add_filter( 'woo_breadcrumbs_trail', 'woo_custom_filter_breadcrumbs_trail', 10 );

8. Empty cart

function my_empty_cart(){
    global $woocommerce;
    $woocommerce->cart->empty_cart();
}


add_action('init', 'my_empty_cart');

9. Change related products number

function woo_related_products_limit() {
  global $product;  

    $args = array(
        'post_type'             => 'product',
        'no_found_rows'         => 1,
        'posts_per_page'        => 6,
        'ignore_sticky_posts'   => 1,
        'orderby'               => $orderby,
        'post__in'              => $related,
        'post__not_in'          => array($product->id)
    );
    return $args;
}


add_filter( 'woocommerce_related_products_args', 'woo_related_products_limit' );

10. Remove breadcrumb

remove_action( 'woocommerce_before_main_content', 'woocommerce_breadcrumb', 20);



No comments:

Post a Comment