Tài liệu thiết kế website

Dữ liệu đơn vị hành chính Việt Nam đến cấp quận huyện, phường xã
Địa giới hành chính Việt Nam đến cấp xã

Chia sẻ dữ liệu địa giới hành chính của Việt Nam (đơn vị hành chính Việt Nam), chi tiết từ cấp tỉnh thành phố đến cấp quận huyện, phường xã. Nếu bạn nào đang làm web mà cần đụng tới dữ liệu địa giới hành chính thì có thể tải về để dùng, bản cập…

Xem thêm →
Cho phép tải lên các file có đuôi khác nhau trên WordPress

Mặc định WordPress sẽ chỉ cho phép tải lên các đuôi tập tin cho sẵn. Nếu bạn muốn bổ sung thêm các đuôi mở rộng khác thì có thể áp dụng bộ lọc upload_mimes. function hocwp_font_demo_upload_mimes( $mime_types ) { $mime_types['svg'] = 'image/svg+xml'; $mime_types['ttf'] = 'application/x-font-ttf'; $mime_types['otf'] = 'application/x-font-opentype'; $mime_types['woff'] = 'application/font-woff'; $mime_types['woff2'] = 'pplication/font-woff2'; $mime_types['eot']…

Xem thêm →
Class chuyển nội dung bài viết thành giọng đọc file audio mp3

Class bên dưới sẽ mô tả cách chuyển nội dung bài viết thành giọng đọc (Text to Speech, Content to Speech). <?php defined( 'ABSPATH' ) || exit; class CTS_Text_To_Speech { public $api_key; public $voice_id; public $text; public $error; public $response; private $voice; public function __construct( $api_key, $voice_id, $text ) { $this->set_api_key( $api_key ); $this->set_voice_id( $voice_id…

Xem thêm →
Thêm column và sortable column vào bảng thành viên

Nếu bạn muốn thêm một cột bất kỳ vào bảng danh sách người dùng, bạn có thể tham khảo đoạn code bên dưới. function hpxf_manage_users_sortable_columns_filter( $column ) { $column['date'] = 'date'; $column['collections'] = 'collections'; $column['posts'] = 'posts'; $column['forum_posts'] = 'forum_posts'; $column['media_files'] = 'media_files'; $column['description'] = 'description'; return $column; } add_filter( 'manage_users_sortable_columns', 'hpxf_manage_users_sortable_columns_filter' ); function hpxf_manage_users_columns_filter(…

Xem thêm →
Sử dụng AJAX trong WordPress

AJAX là chữ viết tắt của cụm từ Asynchronous Javascript and XML. AJAX là phương thức trao đổi dữ liệu với máy chủ và cập nhật một hay nhiều phần của trang web, hoàn toàn không reload lại toàn bộ trang. AJAX được viết bằng Javascript chạy trên client, tức là mỗi browser sẽ chạy…

Xem thêm →
Singleton trong PHP

Đôi khi bạn muốn tạo 1 class nhưng không cho phép nó được khởi tạo nhiều lần, mà class này chỉ được khởi tạo 1 lần và dùng đi dùng lại thì bạn hãy tìm từ khóa Singleton. /** * The Singleton class defines the `GetInstance` method that serves as an * alternative to constructor…

Xem thêm →
Quy tắc đặt tên trong Javascript

Quy tắc đặt tên áp dụng trong khi viết mã Javascript. // Naming Rules in Javascript // Variables let fullName = "Lai Dinh Cuong"; // Boolean variables let isStudent = false; let hasMoney = false; // Functions function getInfo() { return "ABC"; } // Constants const HEIGHT = 1720; const BIRTH_DAY = 19900924; // Classes…

Xem thêm →
Thêm column và sortable column vào bảng danh sách bài viết

Đoạn code ví dụ cách thêm column và sortable column vào bảng quản lý danh sách bài viết trong admin. add_filter( 'manage_posts_columns', 'hocwp_theme_custom_post_columns_filter' ); function hocwp_theme_custom_post_columns_filter( $columns ) { $date = $columns['date']; unset( $columns['date'] ); $columns['type'] = __( 'Type', 'rentinsingapore' ); $columns['date'] = $date; return $columns; } add_action( 'manage_posts_custom_column', 'hocwp_theme_custom_post_column_action', 10, 2 ); function hocwp_theme_custom_post_column_action(…

Xem thêm →
Ví dụ code form thanh toán Stripe
Ví dụ Stripe payment form

Nếu bạn đang làm code thanh toán qua Stripe, bạn muốn tùy chỉnh form thanh toán thì có thể tham khảo tài liệu của nhà cung cấp. Ví dụ: https://stripe.dev/elements-examples/ Trong này có nhiều kiểu form cho bạn tùy chọn. Có thể áp dụng form nhập thẻ Visa/Debit chung trong 1 trường hoặc tách các…

Xem thêm →
Truy vấn lấy giá trị lớn nhất, giá trị nhỏ nhất trong bảng meta WordPress

Trong ví dụ này, mình có một cột meta_key có giá trị là rent, và một cột meta_value có giá trị là con số với kiểu dữ liệu là LONGTEXT. Các đối tượng rent sẽ chứa một con số thực thể hiện giá cho thuê. Để lấy được giá cao nhất và giá thấp nhất,…

Xem thêm →
Mã điện thoại quốc tế và Việt Nam bằng PHP

Danh sách mã quốc gia và mã điện thoại của 252 quốc gia trên toàn thế giới bằng PHP. $country_list = array( "AF" => array("name" => "Afghanistan", "phone" => 93), "AX" => array("name" => "Aland Islands", "phone" => 358), "AL" => array("name" => "Albania", "phone" => 355), "DZ" => array("name" => "Algeria", "phone" => 213),…

Xem thêm →
Cập nhật giỏ hàng và đếm giỏ hàng khi thêm sản phẩm

Khi thêm 1 sản phẩm vào giỏ hàng bằng AJAX, hệ thống sẽ tự động đếm số lượng của mini cart và cập nhật lại danh sách sản phẩm trong mini cart. <div class="basket-item-count"> <span class="cart-items-count"> <?php echo WC()->cart->get_cart_contents_count(); ?> </span> </div> Mặc định, nếu dùng thẻ a có class là cart-contents sẽ được đếm…

Xem thêm →
Tạo Flex Block mới kế thừa từ Flex Block có sẵn của tagDiv Composer
Kế thừa tagDiv Flex Block

Yêu cầu của công việc là kế thừa lại một Flex Block của tagDiv Composer. Tùy chỉnh lại query bài viết theo nhu cầu riêng.   <?php defined( 'ABSPATH' ) || exit; add_action( 'tdc_init', function () { new td_api_featured_plugin(); }, 11 ); add_filter( 'td_data_source_blocks_query_args', function ( $args, $atts ) { if ( is_array( $atts )…

Xem thêm →
Sắp xếp query theo nhiều meta key và meta value khác nhau

Nếu như sinh nhật không phải là một giá trị mà phân làm 3 thì chúng ta có thể sắp xếp theo năm, tháng và ngày. $orderby = $_GET['orderby'] ?? ''; if ( 'birthday' == $orderby ) { $order = $_GET['order'] ?? 'ASC'; //$query->set( 'order', $order ); $query->set( 'meta_query', array( 'relation' => 'AND', 'birth_year' =>…

Xem thêm →
Thêm Bulk Actions và Action Links cho plugin WordPress
Plugin bulk actions

Thêm hành động vào Bulk Actions cho plugin, cũng như thêm các link vào bên dưới tên plugin trong bảng quản lý danh sách các plugin. function hocwp_theme_site_transient_update_plugins_filter( $value ) { if ( is_object( $value ) && isset( $value->response ) && is_array( $value->response ) ) { $options = get_option( 'disable_upgrade_plugins' ); if ( ! empty(…

Xem thêm →
Meta Query bài viết có ngày tháng nằm trong khoảng thời gian

$item = array( 'relation' => 'AND', array( 'relation' => 'OR', array( 'relation' => 'OR', array( 'key' => $key . '_from', 'compare' => 'NOT EXISTS' ), array( 'key' => $key . '_from', 'value' => '' ), array( 'key' => $key . '_from', 'value' => 0, 'type' => 'NUMERIC' ), ), array( 'relation' => 'AND', array( 'key'…

Xem thêm →
Kế thừa thuộc tính của plugin WP User Frontend
WP User Frontend

WP User Frontend là plugin có thể giúp bạn tạo form bên ngoài frontend. Bạn có thể tạo form đăng bài viết, form đăng nhập, form đăng ký cho thành viên,… <?php defined( 'ABSPATH' ) || exit; if ( class_exists( 'WPUF_Form_Field_File' ) ) { class FB_Form_Field_File_Table extends WPUF_Form_Field_File { public function __construct() { parent::__construct(); $this->name…

Xem thêm →
Giới hạn số dòng cho đoạn văn bản bằng CSS

Bằng cách sử dụng thuộc tính -webkit-line-clamp bạn hoàn toàn có thể giới hạn số dòng cho đoạn văn bản. p { -webkit-line-clamp: 3; overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; color: #a5a5a5; } Hoặc bạn cũng có thể sử dụng theo cách truyền thống là giới hạn độ cao bởi thuộc tính height và cho…

Xem thêm →
Chụp hình thẻ DIV hoặc thẻ HTML bất kỳ với HTML2CANVAS
Chụp ảnh thẻ div với html2canvas

Đoạn code PHP ví dụ cách sử dụng html2canvas để chụp hình thẻ div với id là capture: <!DOCTYPE html> <html lang="en"> <head> <title>Capture HTML tag</title> <?php $width = 100; $height = 'auto'; $s = 60; $fontfile = __DIR__ . '/font.ttf'; $actual_link = ( empty( $_SERVER['HTTPS'] ) ? 'http' : 'https' ) . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; $base_url…

Xem thêm →
Chuyển đổi văn bản thành hình ảnh áp dụng font chữ kèm theo

header( "Content-type: image/png" ); if ( class_exists( 'Imagick' ) ) { $width = 1360; $height = 400; $s = 60; $fontfile = __DIR__ . '/font.ttf'; $x = 50; $y = 150; $t = 'Agenda Fantasy Halloween Font'; // Create a new Imagick object $image = new Imagick(); // Set the image background color $backgroundColor =…

Xem thêm →