File: /www/wwwroot/vietktv.vn/wp-content/themes/binhvu/functions.php
<?php
if (!isset($content_width))
{
$content_width = 900;
}
if ( ! function_exists( 'binhvu_setup' ) ) :
function binhvu_setup() {
add_theme_support( 'automatic-feed-links' );
add_theme_support( 'title-tag' );
add_theme_support( 'post-thumbnails' );
// This theme uses wp_nav_menu() in one location.
register_nav_menus( array(
'primary' => esc_html__( 'Menu Ngang', 'binhvu' ),
'category_nav' => esc_html__( 'Menu Danh Mục', 'binhvu' ),
'sidebar_menu' => esc_html__( 'Menu Sidebar Tin tức', 'binhvu' ),
'menu-footer-1' => esc_html__( 'Menu Footer 1', 'binhvu' ),
'menu-footer-2' => esc_html__( 'Menu Footer 2', 'binhvu' ),
'menu-footer-3' => esc_html__( 'Menu Footer 3', 'binhvu' ),
'menu-footer-4' => esc_html__( 'Menu Footer 4', 'binhvu' ),
) );
add_image_size( 'tiny', 100, 100, true );
}
endif;
add_action( 'after_setup_theme', 'binhvu_setup' );
// Remove image size default.
function huydev_remove_default_image_sizes( $sizes) {
unset( $sizes['thumbnail']);
unset( $sizes['medium']);
unset( $sizes['large']);
return $sizes;
}
add_filter('intermediate_image_sizes_advanced', 'huydev_remove_default_image_sizes');
//xóa bỏ chữ mô tả trong trang chi tiết sản phẩm
add_filter( 'woocommerce_product_description_heading', '__return_false' );
function binhvu_widgets_init() {
register_sidebar( array(
'name' => esc_html__( 'Footer', 'binhvu' ),
'id' => 'footer',
'description' => esc_html__( 'Add widgets here.', 'binhvu' ),
'before_widget' => '<div id="%1$s" class="grid__item large--three-tenths medium--one-third %2$s"><div class="footer-menu">',
'after_widget' => '</div></div>',
'before_title' => '<h3 class="footer-title">',
'after_title' => '</h3>',
) );
}
add_action( 'widgets_init', 'binhvu_widgets_init' );
/**
* Enqueue scripts and styles.
*/
function binhvu_scripts() {
wp_enqueue_style( 'binhvu-style', get_stylesheet_uri() );
}
add_action( 'wp_enqueue_scripts', 'binhvu_scripts' );
// Clean up the <head>
function removeHeadLinks() {
remove_action('wp_head', 'rsd_link');
remove_action('wp_head', 'wlwmanifest_link');
}
add_action('init', 'removeHeadLinks');
remove_action('wp_head', 'wp_generator');
// Load jQuery
if ( !is_admin() ) {
function vpw_style() {
wp_enqueue_style('css_1', get_template_directory_uri() . '/css/bootstrap.min.css');
wp_enqueue_style('css_2', get_template_directory_uri() . '/css/font-awesome.min.css');
wp_enqueue_style('css_3', get_template_directory_uri() . '/css/jquery-ui.min.css');
wp_enqueue_style('css_4', get_template_directory_uri() . '/css/owl.carousel.min.css');
wp_enqueue_style('css_5', get_template_directory_uri() . '/css/owl.theme.default.min.css');
wp_enqueue_style('css_8', get_template_directory_uri() . '/css/jquery.mmenu.css');
wp_enqueue_style('css_6', get_template_directory_uri() . '/css/style.css');
wp_enqueue_style('css_7', get_template_directory_uri() . '/css/responsive.css');
wp_enqueue_script('script_01', get_template_directory_uri() . '/js/jquery-1.9.1.js',1,'',true);
wp_enqueue_script('script_02', get_template_directory_uri() . '/js/jquery-ui.min.js',1,'',true);
wp_enqueue_script('script_03', get_template_directory_uri() . '/css/particles.min.js',1,'',true);
wp_enqueue_script('script_04', get_template_directory_uri() . '/js/bootstrap.min.js',1,'',true);
wp_enqueue_script('script_05', get_template_directory_uri() . '/js/owl.carousel.min.js',1,'',true);
wp_enqueue_script('script_06', get_template_directory_uri() . '/js/jquery-scrolltofixed-min.js',1,'',true);
wp_enqueue_script('script_07', get_template_directory_uri() . '/js/custom.js',1,'',true);
wp_enqueue_script('script_08', get_template_directory_uri() . '/js/jquery.mmenu.js',1,'',true);
}
add_action('wp_enqueue_scripts', 'vpw_style');
}
add_filter('site_transient_update_plugins', 'my_remove_update_nag');
function my_remove_update_nag($value) {
unset($value->response[ 'advanced-custom-fields-pro/acf.php' ]);
return $value;
}
//xóa unset resize mặc định woocommerce
add_filter( 'intermediate_image_sizes_advanced', 'prefix_remove_default_images' );
// Remove default image sizes here.
function prefix_remove_default_images( $sizes ) {
unset( $sizes['thumbnail']);
unset( $sizes['medium']);
unset( $sizes['large']);
unset( $sizes['medium_large']);
unset( $sizes['shop_thumbnail']);
// unset( $sizes['shop_catalog']);
unset( $sizes['woocommerce_gallery_thumbnail']);
unset( $sizes['shop_single']);
unset( $sizes['woocommerce_single']);
// unset( $sizes['woocommerce_thumbnail']);
return $sizes;
}
//xóa bỏ chữ mô tả trong trang chi tiết sản phẩm
add_filter( 'woocommerce_product_description_heading', '__return_false' );
//Code phan trang
function wp_corenavi_table($custom_query = null) {
global $wp_query;
if($custom_query) $main_query = $custom_query;
else $main_query = $wp_query;
$big = 999999999;
$total = isset($main_query->max_num_pages)?$main_query->max_num_pages:'';
if($total > 1) echo '<div class="paginate_links">';
echo paginate_links( array(
'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
'format' => '?paged=%#%',
'current' => max( 1, get_query_var('paged') ),
'total' => $total,
'mid_size' => '10',
'prev_text' => __('<i class="fa fa-angle-double-left" aria-hidden="true"></i>','devvn'),
'next_text' => __('<i class="fa fa-angle-double-right" aria-hidden="true"></i>','devvn'),
) );
if($total > 1) echo '</div>';
}
//kích hoạt khung soạn thảo đầy đủ cho WordPress
if ( ! function_exists( 'devvn_ilc_mce_buttons' ) ) {
function devvn_ilc_mce_buttons($buttons){
array_push($buttons,
"alignjustify",
"subscript",
"superscript"
);
return $buttons;
}
add_filter("mce_buttons", "devvn_ilc_mce_buttons");
}
if ( ! function_exists( 'devvn_ilc_mce_buttons_2' ) ) {
function devvn_ilc_mce_buttons_2($buttons){
array_push($buttons,
"backcolor",
"anchor",
"fontselect",
"fontsizeselect",
"cleanup"
);
return $buttons;
}
add_filter("mce_buttons_2", "devvn_ilc_mce_buttons_2");
}
// Customize mce editor font sizes
if ( ! function_exists( 'devvn_mce_text_sizes' ) ) {
function devvn_mce_text_sizes( $initArray ){
$initArray['fontsize_formats'] = "9px 10px 12px 13px 14px 16px 17px 18px 19px 20px 21px 24px 28px 32px 36px";
return $initArray;
}
add_filter( 'tiny_mce_before_init', 'devvn_mce_text_sizes' );
}
function mytheme_add_woocommerce_support() {
add_theme_support( 'woocommerce' );
}
add_action( 'after_setup_theme', 'mytheme_add_woocommerce_support' );
add_theme_support( 'wc-product-gallery-zoom' );
add_theme_support( 'wc-product-gallery-lightbox' );
add_theme_support( 'wc-product-gallery-slider' );
add_filter( 'loop_shop_per_page', create_function( '$cols', 'return 12;' ), 20 );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_meta', 40 );
remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_related_products', 20 );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 20 );
add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 8 );
add_filter('woocommerce_sale_flash', 'lw_hide_sale_flash');
function lw_hide_sale_flash()
{
return false;
}
function sku(){
global $product;
$get_sku = $product->get_sku();
if ( wc_product_sku_enabled() && ( $product->get_sku() || $product->is_type( 'variable' ) ) ) {
echo "<div class='product-sku' style='margin-bottom: 10px;'> Mã sản phẩm: <span>".$get_sku ."</span></div>";
}
}
add_action('woocommerce_single_product_summary','sku',9,1);
/**
* Rename product data tabs
*/
add_filter( 'woocommerce_product_tabs', 'woo_rename_tabs', 98 );
function woo_rename_tabs( $tabs ) {
$tabs['description']['title'] = __( 'Đặc điểm' ); // Rename the description tab
$tabs['reviews']['title'] = __( 'Đánh giá' ); // Rename the reviews tab
return $tabs;
}
/**
* Add a custom product data tab
*/
add_filter( 'woocommerce_product_tabs', 'woo_new_product_tab1' );
function woo_new_product_tab1( $tabs ) {
$tabs['thong_so_ky_thuat'] = array(
'title' => __( 'Thông số kỹ thuật', 'woocommerce' ),
'priority' => 15,
'callback' => 'woo_new_product_tab_content1'
);
return $tabs;
}
function woo_new_product_tab_content1() {
echo the_field('thong_so_ky_thuat');
}
add_filter( 'woocommerce_product_tabs', 'woo_new_product_tab2' );
function woo_new_product_tab2( $tabs ) {
$tabs['phoi_ghep'] = array(
'title' => __( 'Phối ghép', 'woocommerce' ),
'priority' => 16,
'callback' => 'woo_new_product_tab_content2'
);
return $tabs;
}
function woo_new_product_tab_content2() {
echo the_field('phoi_ghep');
}
add_filter( 'woocommerce_product_tabs', 'woo_new_product_tab3' );
function woo_new_product_tab3( $tabs ) {
$tabs['tai_lieu'] = array(
'title' => __( 'Tài liệu', 'woocommerce' ),
'priority' => 17,
'callback' => 'woo_new_product_tab_content3'
);
return $tabs;
}
function woo_new_product_tab_content3() {
echo the_field('tai_lieu');
}
add_filter( 'woocommerce_product_tabs', 'woo_new_product_tab4' );
function woo_new_product_tab4( $tabs ) {
$tabs['video'] = array(
'title' => __( 'Video', 'woocommerce' ),
'priority' => 18,
'callback' => 'woo_new_product_tab_content4'
);
return $tabs;
}
function woo_new_product_tab_content4() {
echo the_field('video');
}
// Option config website.
if( function_exists('acf_add_options_page') ) {
acf_add_options_page(array(
'page_title' => 'Cấu hình website',
'menu_title' => 'Cấu hình website',
'menu_slug' => 'theme-general-settings',
'capability' => 'edit_posts',
'redirect' => false
));
}
/**
* Produces cleaner filenames for uploads
*/
function ttv_sanitize_file_name( $filename ) {
$sanitized_filename = remove_accents( $filename ); // Convert to ASCII
// Standard replacements
$invalid = array(
' ' => '-',
'%20' => '-',
'_' => '-',
);
$sanitized_filename = str_replace( array_keys( $invalid ), array_values( $invalid ), $sanitized_filename );
$sanitized_filename = preg_replace('/[^A-Za-z0-9-\. ]/', '', $sanitized_filename); // Remove all non-alphanumeric except .
$sanitized_filename = preg_replace('/\.(?=.*\.)/', '', $sanitized_filename); // Remove all but last .
$sanitized_filename = preg_replace('/-+/', '-', $sanitized_filename); // Replace any more than one - in a row
$sanitized_filename = str_replace('-.', '.', $sanitized_filename); // Remove last - if at the end
$sanitized_filename = strtolower( $sanitized_filename ); // Lowercase
return $sanitized_filename;
}
add_filter( 'sanitize_file_name', 'ttv_sanitize_file_name', 10, 1 );
// Remove thumbnail size.
add_filter( 'post_thumbnail_html', 'remove_thumbnail_dimensions', 10, 3 );
function remove_thumbnail_dimensions( $html, $post_id, $post_image_id ) {
$html = preg_replace( '/(width|height)=\"\d*\"\s/', "", $html );
return $html;
}
// Remove canonical header.
function at_remove_dup_canonical_link() {
return false;
}
add_filter( 'wpseo_canonical', 'at_remove_dup_canonical_link' );
// Classic Editor.
add_filter('use_block_editor_for_post', '__return_false');
add_filter( 'woocommerce_checkout_fields', 'custom_checkout_page' );
function custom_checkout_page($fields){
//remove fields
unset($fields['billing']['billing_first_name']);
unset($fields['billing']['billing_address_2']);
unset($fields['billing']['billing_city']);
unset($fields['billing']['billing_country']);
unset($fields['billing']['billing_state']);
unset($fields['billing']['billing_postcode']);
unset($fields['billing']['billing_company']);
//rename label
$fields['billing']['billing_last_name'] = array(
'label' => __('Họ & Tên ', 'woocommerce'),
'required'=>true
);
$fields['billing']['billing_email'] = array(
'label' => __('Địa chỉ email ', 'woocommerce'),
'required'=>true
);
$fields['billing']['billing_phone'] = array(
'label' => __('Số điện thoại ', 'woocommerce'),
'required'=>true
);
$fields['billing']['billing_address_1'] = array(
'label' => __('Địa chỉ ', 'woocommerce'),
'required'=>true
);
// List and Sort again
$billing_sort = array(
//"billing_first_name",
"billing_last_name",
"billing_email",
"billing_phone",
"billing_address_1",
//"billing_address_2",
//'billing_city',
//"billing_country",
//"billing_state",
//"billing_postcode",
//"billing_company",
);
$ordered_fields = array();
foreach ( $billing_sort as $field ) {
$ordered_fields[ $field ] = $fields["billing"][ $field ];
}
return $fields;
}
add_action("woocommerce_review_order_before_payment","add_title_method_payment");
function add_title_method_payment(){
?>
<h3 id="payment_heading">Phương Thức Thanh Toán</h3>
<?php
}
// Send Mail SMTP.
function send_smtp_email( $phpmailer ) {
$phpmailer->IsSMTP();
$phpmailer->Host = "smtp.gmail.com";
$phpmailer->Port = 465;
$phpmailer->SMTPAuth = true;
$phpmailer->Username = get_field('email_app', 'option'); //tai khoan
$phpmailer->Password = get_field('password_app', 'option'); //mat khau
$phpmailer->SMTPSecure = "ssl";
}
add_action( 'phpmailer_init', 'send_smtp_email' );
//* Remove non-breaking space from beginning of paragraph
function prevent_deleting_pTags($init){
$init['wpautop'] = false;
return $init;
}