Đoạn code Woocommerce chuyển giá 0đ hoặc để trống thành Liên hệ, số điện thoại tùy ý bạn, bạn muốn thay thành gì cũng được, code sẽ được thêm vào function.php Nếu bạn không xài child theme thì paste code vào function.php của theme đó luôn. Nếu bạn xài flatsome-child thì vào đó và thêm code vào function.php: function chowordpress_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, __( ‘Liên hệ’, ‘woocommerce’ ) ); } else { $price = ‘<span class=”amount”>’ . __( ‘Liên hệ’, ‘woocommerce’ ) . ‘</span>’; } } return $price; } add_filter( ‘woocommerce_get_price_html’, ‘chowordpress_wc_custom_get_price_html’, 10, 2 ); Chuyển giá thành Liên hệ khi hết hàng trong woocommerce Đoạn code này sẽ giúp bạn hiển thị giá thành chữ Liên hệ khi set sản phẩm đó là hết hàng. Bạn chỉ cần thêm đoạn code sau vào functions.php của theme đang active là được, như theme flatsome-child đó. function chowordpress_oft_custom_get_price_html( $price, $product ) { if ( !is_admin() && !$product->is_in_stock()) { $price = ‘<span class=”amount”>’ . __( ‘Liên hệ’, ‘woocommerce’ ) . ‘</span>’; } return $price; } add_filter( ‘woocommerce_get_price_html’, ‘chowordpress_oft_custom_get_price_html’, 99, 2 ); Đoạn code Woocommerce chuyển giá trống hoặc không nhập giá thành Liên hệ, số điện thoại tùy ý bạn, bạn muốn thay thành gì cũng được, code sẽ được thêm vào function.php Nếu bạn không xài child theme thì paste code vào function.php của theme đó luôn. Chuyển giá trống thành Liên hệ trong woocommerce Bạn dán code này vào file function.php của child theme nhé: add_filter(‘woocommerce_empty_price_html’, ‘custom_call_for_price’); function custom_call_for_price() { return ‘Liên hệ SĐT CỦA BẠN’; } Thêm code chuyển giá thành liên hệ đó vào là chạy, nếu cần hỗ trợ thì inbox admin nhé. Cảm ơn bạn!
Tracking nguồn người dùng đến từ đâu trong Contact Form 7
Đối với những người làm marketing, làm quảng cáo thì sau khi tạo form đăng ký hay mua xong sẽ cần phải biết cách để tracking nguồn người dùng gửi form đến từ đâu, để từ đó phân tích được hành vi người dùng tốt hơn để có thể tối ưu được chiến dịch quảng cáo đang chạy. Bài viết này mình sẽ giải quyết vấn đề bạn có thể biết được người dùng tới trang web của bạn từ nguồn nào (từ google, facebook…) trang đầu tiên người dùng truy cập trên web bạn là trang nào và người dùng điền gửi form ở trang nào. Hướng dẫn cài đặt tracking nguồn người dùng qua Contact Form 7 Các thông tin bạn có thể tracking được bao gồm nguồn giới thiệu, trang web đầu tiên người dùng truy cập, trang web người dùng điền form, địa chỉ IP của người dùng, thông tin trình duyệt. Để tracking nguồn người dùng chúng ta sẽ làm theo 2 bước dưới đây. Bước 1: Chèn đoạn code dưới đây vào cuối file functions.php trong theme bạn đang dùng. // Add the info to the email function wpshore_wpcf7_before_send_mail($array) { global $wpdb; if(wpautop($array[‘body’]) == $array[‘body’]) // The email is of HTML type $lineBreak = “<br/>”; else $lineBreak = “\n”; $trackingInfo .= $lineBreak . $lineBreak . ‘– Tracking Info –‘ . $lineBreak; $trackingInfo .= ‘URL điền form: ‘ . $_SERVER[‘HTTP_REFERER’] . $lineBreak; if (isset ($_SESSION[‘OriginalRef’]) ) $trackingInfo .= ‘Người dùng đến từ trang: ‘ . $_SESSION[‘OriginalRef’] . $lineBreak; if (isset ($_SESSION[‘LandingPage’]) ) $trackingInfo .= ‘Trang đích trước khi điền form: ‘ . $_SESSION[‘LandingPage’] . $lineBreak; if ( isset ($_SERVER[“REMOTE_ADDR”]) ) $trackingInfo .= ‘IP người dùng: ‘ . $_SERVER[“REMOTE_ADDR”] . $lineBreak; if ( isset ($_SERVER[“HTTP_X_FORWARDED_FOR”])) $trackingInfo .= ‘User\’s Proxy Server IP: ‘ . $_SERVER[“HTTP_X_FORWARDED_FOR”] . $lineBreak . $lineBreak; if ( isset ($_SERVER[“HTTP_USER_AGENT”]) ) $trackingInfo .= ‘Thông tin trình duyệt: ‘ . $_SERVER[“HTTP_USER_AGENT”] . $lineBreak; $array[‘body’] = str_replace(‘[tracking-info]’, $trackingInfo, $array[‘body’]); return $array; } add_filter(‘wpcf7_mail_components’, ‘wpshore_wpcf7_before_send_mail’); Bước 2: Gắn shortcode vào nội dung tin nhắn Bạn hãy vào trang quản lý WordPress và mở form cần tracking. Chuyển sang tab Cấu hình Mail và thêm vào mục Nội dung tin nhắn đoạn shortcode [tracking-info] như sau:
Hướng dẫn chống spam điền form trên Contact Form 7
Contact Form 7 là một trong những plugin hỗ trợ tốt khi bạn sử dụng WordPress để tạo form liên hệ, đăng ký… Bài viết này giải quyết vấn đề bị spam và cách chống spam khá hiểu quả đó là: 1. Validate chống spam số điện thoại trong Contact Form 7 1.1Code khách hàng nhập đủ 10 số mới được Ở trường tel code là: [tel* your-phone minlength:10 maxlength:10] Trong đó: minlength:10 Độ dài tối thiểu được phép cho trường đầu vào này. maxlength:10 Độ dài tối đa được phép cho trường đầu vào này 2.2 Code KH nhập đầu số phải bằng 0 và đúng đầu số của các nhà mạng Chúng ta đặt rule phải gõ đúng SĐT ở form số điện thoại phải đạt các điều kiện: 10 số Số đầu tiên phải là 0 Số thứ 2 phải là 3, 5, 7, 8, 9 Để validate số điện thoại trong Contact Form 7 thì chúng ta cần bổ sung code sau vào file functions.php của theme hoặc child theme của website. Cập nhật mới nhất Validate tất cả đầu số của các nhà mạng hiện tại function custom_filter_wpcf7_is_tel( $result, $tel ) { $result = preg_match( ‘/^(032|033|034|035|036|037|038|039|086|096|097|098|081|082|083|084|085|088|091|094|056|058|092|070|076|077|078|079|089|090|093|099|059)+([0-9]{7})$/;’, $tel ); return $result; } add_filter( ‘wpcf7_is_tel’, ‘custom_filter_wpcf7_is_tel’, 10, 2 ); 2. Chống spam bằng cách kiểm tra người dùng scroll chuột hay chưa Cơ chế hoạt động: Thường thì form được đặt ở giữa hoặc cuối trang web, buộc người dùng phải cuộn xuống mới có thể điền thông tin và gửi đi, đúng không? Vì thế, mình sẽ tính toán số lần người dùng cuộn trang và khi đạt đến một mức độ hợp lý, hệ thống sẽ cho phép người dùng gửi form. Ưu điểm: Không gây phiền toái cho người dùng, tương tự như cách 1. Đơn giản và không ảnh hưởng đến giao diện của form. Nhược điểm: Chưa có. Cách thực hiện: Chỉ cần thêm đoạn code sau vào tệp wp-content/themes/{your-theme}/functions.php. /* * Check spam cf7 bằng scroll * Author: levantoan.com * */ add_filter(‘wpcf7_form_elements’, ‘devvn_check_scroll_form_cf7’); function devvn_check_scroll_form_cf7($html){ $html = ‘<div style=”display: none”><p><span class=”wpcf7-form-control-wrap” data-name=”devvn-scroll”><input size=”40″ class=”wpcf7-form-control wpcf7-text” aria-invalid=”false” value=”0″ type=”text” name=”devvn-scroll”></span></p></div>’ . $html; return $html; } add_action(‘wpcf7_posted_data’, ‘devvn_check_scroll_form_cf7_vaild’); function devvn_check_scroll_form_cf7_vaild($posted_data) { $submission = WPCF7_Submission::get_instance(); $scroll = isset($posted_data[‘devvn-scroll’]) ? intval($posted_data[‘devvn-scroll’]) : 0; //nếu form ở ngay trên đầu page thì thay 5000 thành số nhỏ hơn. ví dụ 200 if (!$scroll || $scroll <= 5000) { $submission->set_status( ‘spam’ ); $submission->set_response( ‘You are spamer’ ); } unset($posted_data[‘devvn-scroll’]); return $posted_data; } add_action(‘wp_footer’, function (){ ?> <script> const scrollInputs = document.querySelectorAll(‘input[name=”devvn-scroll”]’); if(scrollInputs.length > 0) { let accumulatedScroll = 0; function devvnCheckScroll() { accumulatedScroll += window.scrollY; scrollInputs.forEach(input => { input.value = accumulatedScroll; }); //nếu form ở ngay trên đầu page thì thay 6000 thành số nhỏ hơn. ví dụ 300 if (accumulatedScroll >= 6000) { window.removeEventListener(‘scroll’, devvnCheckScroll); } } window.addEventListener(‘scroll’, devvnCheckScroll); } </script> <?php }); Nguồn bài viết tham khảo: https://nguyentuan.name.vn/ https://levantoan.com/
Code tự động lấy ảnh từ web khác khi coppy bài viết WordPress
Code tự động lấy ảnh từ web khác khi coppy bài viết WordPress. Bạn kéo chuột coppy nội dung từ web khác về tất nhiên sẽ kéo luôn link ảnh từ web họ, vậy nên khi thêm đoạn code này vào, ảnh đó sẽ được tự động đưa vào web bạn và thay thế cho link ảnh của web đã coppy. Thay vì bạn phải tải về up lên lại để tránh dính link web họ. Chỉ cần Coppy nội dung và bấm đăng việc sao chép nội dung + ảnh từ web khác của bạn đã hoàn thành nhanh chóng. Bạn vào thư mục của theme đang kích hoạt có file function.php mở ra rồi thêm code này vào nhé. xài child theme cũng vào function.php. Thêm xong là thử viết 1 bài mới thôi. class Auto_Save_Images{ function __construct(){ add_filter( ‘content_save_pre’,array($this,’post_save_images’) ); } function post_save_images( $content ){ if( ($_POST[‘save’] || $_POST[‘publish’] )){ set_time_limit(240); global $post; $post_id=$post->ID; $preg=preg_match_all(‘/<img.*? src=”(.*?)”>save_images($image_url,$post_id); $replace=$res[‘url’]; $content=str_replace($image_url,$replace,$content); } } } } remove_filter( ‘content_save_pre’, array( $this, ‘post_save_images’ ) ); return $content; } function save_images($image_url,$post_id){ $file=file_get_contents($image_url); $post = get_post($post_id); $posttitle = $post->post_title; $postname = sanitize_title($posttitle); $im_name = “$postname-$post_id.jpg”; $res=wp_upload_bits($im_name,”,$file); $this->insert_attachment($res[‘file’],$post_id); return $res; } function insert_attachment($file,$id){ $dirs=wp_upload_dir(); $filetype=wp_check_filetype($file); $attachment=array( ‘guid’=>$dirs[‘baseurl’].’/’._wp_relative_upload_path($file), ‘post_mime_type’=>$filetype[‘type’], ‘post_title’=>preg_replace(‘/\.[^.]+$/’,”,basename($file)), ‘post_content’=>”, ‘post_status’=>’inherit’ ); $attach_id=wp_insert_attachment($attachment,$file,$id); $attach_data=wp_generate_attachment_metadata($attach_id,$file); wp_update_attachment_metadata($attach_id,$attach_data); return $attach_id; } } new Auto_Save_Images();</img.*?>
MỘT SỐ DỰ ÁN TIÊU BIỂU
Catalog D.Cheery
Hồ sơ năng lực SEATECH
Thiết kế Website Vật tư Điền Thuận
Thiết kế Website Vật tư Điền Thuận Giới thiệu về Công ty TNHH Điền Thuận Vật tư Điền Thuận chuyên cung cấp – bán buôn – bán lẻ các mặt hàng vật tư. Điền Thuận – nhà cung ứng phân phối đầy đủ các vật liệu hoàn thiện nội – ngoại thất. Ngoài ra còn có các vật liệu dùng trong ngành quảng cáo và thiết bị lắp đặt ngành xây dựng. Định hướng xây dựng Website Giao diện website: Điền Thuận luôn chú trọng xây dựng hình ảnh ấn tượng chuyên nghiệp trước các khách hàng và đối tác. Vì vậy, giao diện website cần thiết kế bắt mắt ngay từ giây phút đầu tiên truy cập. Cùng với đó, tốc độ load trang cần tối ưu để đảm bảo trải nghiệm người dùng. Thiết kế nội dung: Website cần cập nhật đầy đủ nội dung hình ảnh các sản phẩm Điện Thuận cung ứng. Nhờ đó khách hàng dễ dàng tham khảo và chọn lựa sản phẩm thích hợp. Bên cạnh đó, các bài tin tức chuyên ngành cũng là những bài tham khảo cần thiết với khách hàng. Tiện ích website Việc kết nối với khách hàng tham khảo website vô cùng quan trọng. Nếu chỉ có thông tin và tin tức sản phẩm sẽ không thể giữ chân khách truy cập web. Điều cần thiết là ở mọi giao diện đều cần thiết kế đầy đủ các nút liên hệ để khách có thể nhận được sự tư vấn bất kỳ lúc nào. Ngoài ra, tính năng bộ lọc và tìm kiếm cũng khiến khách hàng tham khảo sản phẩm dễ dàng hơn thay vì tìm kiếm dàn trải nội dung. Đây cũng là một trong các tính năng cơ bản cần có trong thiết kế website. Sản phẩm Khách hàng: Công Ty TNHH Điền Thuận Địa chỉ: Hạ Long – Quảng Ninh Website: https://vattudienthuan.com/
Hồ sơ năng lực Gia Nguyễn
[row] [col span__sm=”12″] [ux_html] [/ux_html] [/col] [/row]
Hồ sơ năng lực Vật Tư Điền Thuận
[row] [col span__sm=”12″] [ux_html] [/ux_html] [/col] [/row]