Một số đoạn mã chèn vào file Function.php

Function

Cấu hình SMTP gửi mail không cần Plugin

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// SMTP Config

add_action( 'phpmailer_init', function( $phpmailer ) {
    if ( !is_object( $phpmailer ) )
    $phpmailer = (object) $phpmailer;
    $phpmailer->Mailer     = 'smtp';
    $phpmailer->Host       = 'smtp.gmail.com';
    $phpmailer->SMTPAuth   = 1;
    $phpmailer->Port       = 587; // 465 (nếu chọn SSL) / 587 (nếu chọn TLS)
    $phpmailer->Username   = 'email@gmail.com'; // Tài khoản gmail
    $phpmailer->Password   = 'qwertyuiop'; // Mật khẩu ứng dụng
    $phpmailer->SMTPSecure = 'TLS';
    $phpmailer->From       = 'email@gmail.com'; // Tài khoản gmail gửi mail
    $phpmailer->FromName   = 'Tên muốn hiển thị trong mail'; // Tên tài khoản gửi mail
});

Bỏ tự động thêm tag <p> trong trình soạn thảo WP

1
2
3
4
5
6
7
// Auto Remove P Tag
function remove_auto_p_tinymce($in) {
    $in['forced_root_block'] = "";
    $in['force_p_newlines'] = true;
        return $in;
}
add_filter( 'tiny_mce_before_init', 'remove_auto_p_tinymce' );

Dịch không cần Plugin

1
2
3
4
5
6
7
8
9
10
11
12
// Translate
function hl_change_translate_text_multiple ( $translated ) {
    $text = array(
        'Đọc tiếp' => 'Đặt hàng',
        'Thêm vào giỏ' => 'Mua hàng',
        'Lựa chọn các tùy chọn' => 'Chọn mẫu',
    );
    $translated = str_ireplace( array_keys($text), $text, $translated );
    return $translated;
}

add_filter( 'gettext', 'hl_change_translate_text_multiple', 20 );

Bỏ tự động giảm chất lượng ảnh khi upload của WP

1
add_filter('jpeg_quality', function($arg){return 100;});

Thêm nhãn Shopee vào sản phẩm trang Shop khi dùng ACF

1
2
3
4
5
6
7
8
9
10
// Add shopee badge to archive pages
add_action( 'woocommerce_after_shop_loop_item', 'huanle_ecommerce_link' );
 
function huanle_ecommerce_link() {
    if( get_field('link_shopee') ) { // if product has ecommerce link
        echo '<div class="ecomlink">Shopee</div>';
    } else {
        echo '&nbsp;';
    }
}

Thêm link Shopee vào trang chi tiết sản phẩm trước nút mua hàng

1
2
3
4
5
6
7
8
9
10
11
// Add shopee + lazada + tiki link to single product page
add_action( 'woocommerce_single_product_summary', 'huanle_show_shopee_link', 20 );
 
function huanle_show_shopee_link() {
    $link = get_field('link_shopee');
    if( $link ) {
        echo '<div class="ecom_shopee_btn"><a href="' . $link . '" target="_blank" rel="nofollow noopener noreferrer" alt="Mua trên Shopee" Title="Mua trên Shopee">Shopee</a></div>';
    } else {
        echo '&nbsp;';
    }
}

Chỉnh sửa lại trang thanh toán của Woocommerce

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
// Chỉnh sửa trang thanh toán của Woocommerce

/*Sắp xếp lại thứ tự các field*/
add_filter("woocommerce_checkout_fields", "order_fields");
function order_fields($fields) {
 
  //Shipping
  $order_shipping = array(
    "shipping_last_name",
    "shipping_phone",
    "shipping_address_1"
  );
  foreach($order_shipping as $field_shipping)
  {
    $ordered_fields2[$field_shipping] = $fields["shipping"][$field_shipping];
  }
  $fields["shipping"] = $ordered_fields2;
  return $fields;
}
 
add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields',99 );
function custom_override_checkout_fields( $fields ) {
  unset($fields['billing']['billing_company']);
  unset($fields['billing']['billing_first_name']);
  unset($fields['billing']['billing_postcode']);
  unset($fields['billing']['billing_country']);
  unset($fields['billing']['billing_city']);
  unset($fields['billing']['billing_state']);
  unset($fields['billing']['billing_address_2']);
  $fields['billing']['billing_last_name'] = array(
    'label' => __('Họ và tên', 'devvn'),
    'placeholder' => _x('Nhập đầy đủ họ và tên của bạn', 'placeholder', 'devvn'),
    'required' => true,
    'class' => array('form-row-wide'),
    'clear' => true
  );
  $fields['billing']['billing_address_1']['placeholder'] = 'Ví dụ: Số 23 Trần Đăng Ninh, Cầu Giấy, Hà Nội';
 
  unset($fields['shipping']['shipping_company']);
  unset($fields['shipping']['shipping_postcode']);
  unset($fields['shipping']['shipping_country']);
  unset($fields['shipping']['shipping_city']);
  unset($fields['shipping']['shipping_state']);
  unset($fields['shipping']['shipping_address_2']);
 
  $fields['shipping']['shipping_phone'] = array(
    'label' => __('Điện thoại', 'devvn'),
    'placeholder' => _x('Số điện thoại người nhận hàng', 'placeholder', 'devvn'),
    'required' => true,
    'class' => array('form-row-wide'),
    'clear' => true
  );
  $fields['shipping']['shipping_last_name'] = array(
    'label' => __('Họ và tên', 'devvn'),
    'placeholder' => _x('Nhập đầy đủ họ và tên của người nhận', 'placeholder', 'devvn'),
    'required' => true,
    'class' => array('form-row-wide'),
    'clear' => true
  );
  $fields['shipping']['shipping_address_1']['placeholder'] = 'Ví dụ: Số 23 Trần Đăng Ninh, Cầu Giấy, Hà Nội';
 
  return $fields;
}
 
add_action( 'woocommerce_admin_order_data_after_shipping_address', 'my_custom_checkout_field_display_admin_order_meta', 10, 1 );
function my_custom_checkout_field_display_admin_order_meta($order){
  echo '<p><strong>'.__('Số ĐT người nhận').':</strong> <br>' . get_post_meta( $order->get_id(), '_shipping_phone', true ) . '</p>';
}

Đặt hàng nhanh bằng CF7 Form trong trang chi tiết sản phẩm

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/**
 * @snippet       Show Product Inquiry CF7 @ Single Product Page - WooCommerce
 * @how-to        Watch tutorial @ https://businessbloomer.com/?p=19055
 * @sourcecode    https://businessbloomer.com/?p=21605
 * @author        Rodolfo Melogli
 * @compatible    WC 3.5
 */
 
// --------------------------
// 1. Display Button and Echo CF7
 
add_action( 'woocommerce_single_product_summary', 'bbloomer_woocommerce_cf7_single_product', 30 );
 
function bbloomer_woocommerce_cf7_single_product() {
echo '<button type="submit" id="trigger_cf" class="single_add_to_cart_button button alt">Product Inquiry</button>';
echo '<div id="product_inq" style="display:none">';
echo do_shortcode('[paste_your_contact_form_7_shortcode_here]');
echo '</div>';
}
 
// --------------------------
// 2. Echo Javascript:
// a) on click, display CF7
// b) and populate CF7 subject with Product Name
// c) and change CF7 button to "Close"
 
add_action( 'woocommerce_single_product_summary', 'bbloomer_on_click_show_cf7_and_populate', 40 );
 
function bbloomer_on_click_show_cf7_and_populate() {
   
  ?>
    <script type="text/javascript">
        jQuery('#trigger_cf').on('click', function(){
      if ( jQuery(this).text() == 'Product Inquiry' ) {
                   jQuery('#product_inq').css("display","block");
                   jQuery('input[name="your-subject"]').val('<?php the_title(); ?>');
         jQuery("#trigger_cf").html('Close');
      } else {
         jQuery('#product_inq').hide();
         jQuery("#trigger_cf").html('Product Inquiry');
      }
        });
    </script>
   <?php
     
}

Comments

comments

Leave a comment

* - Required fields