Tổng hợp Functions hay dùng trong WordPress

4.8/5 – (175 bình chọn)

tong hop functions hay dung trong wordpress 3844

Bài viết tổng hợp những Function hay và được sử dụng nhiều trong WordPress, thay thế phần nào việc sử dụng thêm Plugin, giúp tối ưu tốc độ tải trang. . .

Kiểm tra định dạng số điện thoại 10 số Việt Nam

function check_wpcf7_tel( $result, $tel ) { 
  $result = preg_match( '/^(0|+84)(s|.)?((3[2-9])|(5[689])|(7[06-9])|(8[1-689])|(9[0-46-9]))(d)(s|.)?(d{3})(s|.)?(d{3})$/', $tel );
  return $result; 
}

add_filter( 'wpcf7_is_tel', 'check_wpcf7_tel', 10, 2 );

Code phân trang cho bài viết

//Code phan trang
function wiki_wp_corenavi($custom_query = null, $paged = null) {
    global $wp_query;
    if($custom_query) $main_query = $custom_query;
    else $main_query = $wp_query;
    $paged = ($paged) ? $paged : get_query_var('paged');
    $big = 999999999;
    $total = isset($main_query->max_num_pages)?$main_query->max_num_pages:'';
    if($total > 1) echo '';
}

Thêm Panel trong Dashboard

add_action( 'admin_footer', 'rv_custom_dashboard_widget' );
function rv_custom_dashboard_widget() {
    // Bail if not viewing the main dashboard page
    if ( get_current_screen()->base !== 'dashboard' ) {
        return;
    }
    ?>
    
    
    


Đổi font chữ từ pt sang px

function flatsome_editor_text_sizes($initArray){
    $initArray['fontsize_formats'] = "9px 10px 12px 13px 14px 16px 17px 18px 19px 20px 21px 24px 28px 32px 36px";
    return $initArray;
};

Thêm Page Options trong quản trị

// Page Options
if( function_exists('acf_add_options_page') ) {
    acf_add_options_page(array(
        'page_title' 	=> 'Cài đặt chung', // Title hiển thị khi truy cập vào Options page
        'menu_title'	=> 'Cài đặt chung', // Tên menu hiển thị ở khu vực admin
        'menu_slug' 	=> 'cai-dat-chung', // Url hiển thị trên đường dẫn của options page
        'capability'	=> 'edit_posts',
        'redirect'	=> false
    ));
}

Xóa thông báo kích hoạt Flatsome trong quản trị

add_action( 'init', 'hide_notice' );
function hide_notice() {
remove_action( 'admin_notices', 'flatsome_maintenance_admin_notice' );
}

Xóa trường thông tin trong form đặt hàng

add_filter( 'woocommerce_billing_fields', 'wc_npr_filter_phone', 10, 1 
);
function wc_npr_filter_phone( $address_fields ) {
    $address_fields['billing_phone']['required'] = true;
    $address_fields['billing_country']['required'] = false;
    $address_fields['billing_last_name']['required'] = false;
    $address_fields['billing_city']['required'] = false;
    $address_fields['billing_postcode']['required'] = false;
    $address_fields['billing_email']['required'] = false;
    $address_fields['billing_state']['required'] = false;
    $address_fields['billing_address_1']['required'] = true;
    $address_fields['billing_address_2']['required'] = false;
    return $address_fields;

}

//make shipping fields not required in checkout
add_filter( 'woocommerce_shipping_fields', 
'wc_npr_filter_shipping_fields', 10, 1 );
function wc_npr_filter_shipping_fields( $address_fields ) {
    $address_fields['shipping_first_name']['required'] = true;
    $address_fields['shipping_last_name']['required'] = false;
    $address_fields['shipping_phone']['required'] = true;
    $address_fields['shipping_address_1']['required'] = true;
    $address_fields['shipping_address_2']['required'] = false;
    $address_fields['shipping_city']['required'] = false;
    $address_fields['shipping_country']['required'] = false;
    $address_fields['shipping_postcode']['required'] = false;
    $address_fields['shipping_state']['required'] = false;
    
    return $address_fields;
}
add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );

// Our hooked in function - $fields is passed via the filter!
function custom_override_checkout_fields( $fields ) {
     unset($fields['billing']['billing_company']);
     //unset($fields['billing']['billing_address_1']);
     unset($fields['billing']['billing_last_name']);
     unset($fields['billing']['billing_address_2']);
     unset($fields['billing']['billing_country']);
     unset($fields['billing']['billing_city']);
     unset($fields['billing']['billing_state']);
     unset($fields['billing']['billing_postcode']);
     //unset($fields['billing']['billing_email']);
      unset($fields['shipping']['shipping_company']);
     //unset($fields['billing']['billing_address_1']);
     unset($fields['shipping']['shipping_last_name']);
     unset($fields['shipping']['shipping_address_2']);
     unset($fields['shipping']['shipping_country']);
     unset($fields['shipping']['shipping_city']);
     unset($fields['shipping']['shipping_state']);
     unset($fields['shipping']['shipping_postcode']);
     //unset($fields['shipping']['shipping_email']);
     return $fields;
}

Tạo mã đơn Woocommer tùy chỉnh

//Custom Order Number
add_filter( 'woocommerce_order_number', 'change_woocommerce_order_number' );
function change_woocommerce_order_number( $order_id ) {
    $prefix = 'BEAR';
    $suffix = 'ONL';
    $new_order_id = $prefix . $order_id . $suffix;
    return $new_order_id;
}

Xóa thẻ H3 trong tiêu đề bình luận

add_filter( 'comment_form_defaults', 'custom_reply_title' );
function custom_reply_title( $defaults ){
  $defaults['title_reply_before'] = '';
  $defaults['title_reply_after'] = '';
  return $defaults;
}

Tắt Gutenberg Editor & Gutenberg Widget

// Disables the block editor from managing widgets in the Gutenberg plugin.
add_filter( 'gutenberg_use_widgets_block_editor', '__return_false', 100 );

// Disables the block editor from managing widgets. renamed from wp_use_widgets_block_editor
add_filter( 'use_widgets_block_editor', '__return_false' );

Dịch ngôn ngữ

//Dịch ngôn ngữ
function multi_change_translate_text( $translated ) {
    $text       = array(
        'Thêm vào giỏ hàng' => 'Đặt mua',
        'Add to cart' => 'Đặt mua',
        'Mô tả' => 'Thông tin sản phẩm',
        'Lựa chọn các tùy chọn' => 'Xem thêm',
        'Cảm ơn bạn. Đơn hàng của bạn đã được nhận.' => 'Cảm ơn bạn! Chúng tôi đã nhận được đơn hàng của bạn.',
    );
    $translated = str_ireplace( array_keys( $text ), $text, $translated );
    return $translated;
}
add_filter( 'gettext', 'multi_change_translate_text', 20 );

Thay khoảng giá bằng giá của biến thể

//Replace Price Range by Variation Price
add_action( 'woocommerce_before_single_product', 'move_variations_single_price', 1 );
function move_variations_single_price(){
  global $product, $post;
  if ( $product->is_type( 'variable' ) ) {
    add_action( 'woocommerce_single_product_summary', 'replace_variation_single_price', 10 );
  }
}

function replace_variation_single_price() {
  ?>
    
    
  is_type('simple') && $product->is_on_sale() ) {
        $regular_price = (float) wc_get_price_to_display( $product, array('price' => $product->get_regular_price() ) );
        $active_price  = (float) wc_get_price_to_display( $product, array('price' => $product->get_sale_price() ) );

        $saved_amount  = $regular_price - $active_price;
        $percentage    = round( $saved_amount / $regular_price * 100 );

        echo '

'. __("Tiết kiệm") .': ' . wc_price($saved_amount) . ' ('.$percentage.'%)

'; } } //Save For product variations (on variable products) add_filter( 'woocommerce_available_variation', 'variable_product_saving_amount', 10, 3 ); function variable_product_saving_amount( $data, $product, $variation ) { if( $variation->is_on_sale() ) { $saved_amount = $data['display_regular_price'] - $data['display_price']; $percentage = round( $saved_amount / $data['display_regular_price'] * 100 ); $data['price_html'] .= '

'. __("Tiết kiệm") .': ' . wc_price($saved_amount) . ' ('.$percentage.'%)

'; } return $data; }

Thay 0đ bằng Liên hệ

// Thay 0đ bằng Liên hệ
function wiki_wc_custom_get_price_html( $price, $product ) {
    if ( $product->get_price() == 0 ) {
        if ( $product->is_on_sale() && $product->get_regular_price() ) {
            $regular_price = wc_get_price_to_display( $product, array( 'qty' => 1, 'price' => $product->get_regular_price() ) );
 
            $price = wc_format_price_range( $regular_price, __( 'Free!', 'woocommerce' ) );
        } else {
            $price = '' . __( 'Liên hệ', 'woocommerce' ) . '';
        }
    }
    return $price;
}
add_filter( 'woocommerce_get_price_html', 'wiki_wc_custom_get_price_html', 10, 2 );

Thêm Widget Area

register_sidebar( array(
    'name' => 'Contact Menu',
    'id' => 'contactmenu',
    'description' => 'Widget for Contact Menu',
    'before_widget' => '
', 'after_widget' => '
', 'before_title' => '', 'after_title' => '', ) );

Xóa Menu iTem trong trang quản trị

// admin_init action works better than admin_menu in modern wordpress (at least v5+)
add_action( 'admin_init', 'my_remove_menu_pages' );
function my_remove_menu_pages() {


  global $user_ID;

  if ( $user_ID != 1 ) { //your user id

   remove_menu_page('edit.php'); // Posts
   remove_menu_page('upload.php'); // Media
   remove_menu_page('link-manager.php'); // Links
   remove_menu_page('edit-comments.php'); // Comments
   remove_menu_page('edit.php?post_type=page'); // Pages
   remove_menu_page('plugins.php'); // Plugins
   remove_menu_page('themes.php'); // Appearance
   remove_menu_page('users.php'); // Users
   remove_menu_page('tools.php'); // Tools
   remove_menu_page('options-general.php'); // Settings
  }
}

Ẩn thông báo trong trang quản trị

add_action('admin_head', 'bc_disable_notice'); function bc_disable_notice() { ?>  

Tắt cập nhật tự động Theme và Plugin

Thêm vào functions.php

// Disable Auto Update Themes
add_filter( 'auto_update_theme', '__return_false' );
// Disable Auto Update Plugins
add_filter( 'auto_update_plugin', '__return_false' );

Tắt cài đặt Themes – Plugins

define('DISALLOW_FILE_MODS',true);