Thứ Sáu, 10 tháng 2, 2023

Hướng Dẫn Xử Lý Lỗi Bài Đăng Facebook Bị Hạn Chế Hiển Thị

Gần đây khá nhiều bạn CTV bán hàng online trên Facebook có hỏi tôi về lỗi giới hạn hiển thị bài đăng trên Facebook:
"Bài niêm yết này đang được xét duyệtChúng tôi đang xem xét mặt hàng bạn bán để đảm bảo mặt hàng đó tuân thủ quy tắc của chúng tôi. Trong quá trình xét duyệt, sẽ không ai khác nhìn thấy mặt hàng này."
Cụ thể đây là lỗi gì và cách xử lý lỗi này ra sao? Mọi người cùng đọc tiếp nhé!




Nguyên nhân lỗi hạn chế hiển thị bài đăng

Thực ra đây là lỗi dành cho những bài bán hàng trên môi trường Marketplace (môi trường bán hàng của Facebook), hay còn gọi là những bài niêm yết. Lỗi này được cảnh báo đối với những bài niêm yết vi phạm Chính sách thương mại của Facebook. Sở dĩ những bài đăng trên tường cá nhân lại bị cảnh báo là do chúng ta đã sử dụng chức năng mới của Facebook - Chuyển bài đăng sang định dạng bán hàng. Khi đó bài đăng của chúng ta sẽ trở thành bài đăng bán hàng với việc xuất hiện thêm nút Tìm hiểu thêm và đồng thời bài đăng cũng được đăng dưới dạng bài niêm yết trên Marketplace.

Marketplace là môi trường bán hàng với khá nhiều nội dung cấm dẫn đến việc bài đăng của chúng ta dễ dàng bị đưa vào diện xem xét, thậm chí là cấm đăng. Chi tiết về chính sách thương mại của Facebook thì mọi người có thể đọc chuyên sâu hơn, nhưng ở đây tôi có thể liệt kê nhanh cho các bạn một số mặt hàng bị giới hạn hoặc cấm bán trên Marketplace:

(*) Nội dung cấm đăng bán niêm yết Facebook:
- Nội dung vi phạm tiêu chuẩn cộng đồng
- Sản phẩm người lớn
- Đồ uống có cồn
- Động vật
- Bộ phận và dịch cơ thể
- Thiết bị điện tử và phương tiện kỹ thuật số
- Phân biệt đối xử
- Chứng từ, tiền và công cụ tài chính
- Cờ bạc
- Hàng hóa và vật liệu nguy hiểm
- Hoạt động bóc lột con người và các dịch vụ tình dục
- Thực phẩm bổ sung
- Việc làm
- Sản phẩm y tế và chăm sóc sức khỏe
- Gây hiểu lầm, lừa đảo hoặc xúc phạm
- Không có mặt hàng nào để bán
- Các sản phẩm kê đơn và dụng cụ để chích/hút thuốc, chất cấm
- Sản phẩm có hình ảnh khiêu dâm lộ liễu
- Sản phẩm bị thu hồi
- Dịch vụ không cho phép niêm yết
- Hàng trộm cắp
- Các gói đăng ký và sản phẩm kỹ thuật số
- Vi phạm của bên thứ ba
- Sản phẩm thuốc lá và liên quan đến thuốc lá
- Vũ khí, đạn dược và chất nổ

(*) Nội dung hạn chết đăng bán niêm yết Facebook:
- Vé tham gia sự kiện hoặc vé vào cửa
- Thẻ quà tặng

Cách xử lý lỗi

Từ nguyên nhân lỗi trên chúng ta có thể dễ dàng hình dung được cách xử lý:
Cách 1: Tôn trọng chính sách của Facebook, không đăng những sản phẩm vi phạm nội dung cấm/hạn chế. Cách này chỉ là lý thuyết
Cách 2: 

Thứ Bảy, 17 tháng 10, 2020

Các cách bảo mật cho website Wordpress

Có nhiều bạn nói rằng Wordpress dễ bị hack... Thực ra ý kiến này chưa thực sự chính xác. Thường website Wordpress dễ bị hack khi chúng ta sử dụng theme/plugin bẩn hoặc do chúng ta chưa thực hiện các bước bảo mật cơ bản cho file code. Dưới đây là bài tổng hợp các cách cơ bản để bảo mật cho website Wordpress. Dù đó không phải là cách bảo mật tuyệt đối nhưng phần nào có thể giúp bạn chống lại cuộc tấn công của những hacker non trẻ.

Cách 1: CHMOD an toàn cho website

CHMOD là một trong bước bảo mật website PHP nói chung và WordPress nói riêng rất tốt để hạn chế các vụ tấn công trực tiếp nhằm vào mã nguồn của website như đọc các thông tin nhạy cảm, tạo thêm các tập tin trong thư mục.

- CHMOD an toàn cho tập tin PHP: CHMOD chuẩn cho toàn bộ tệp tin PHP  trên mã nguồn Wordpress là 644 để website có thể hoạt động bình thường. Riêng tệp tin nhạy cảm như wp-config.php.htaccess thì nên CHMOD thành 400 hoặc 600 (nên dùng 600 là được rồi).

- CHMOD an toàn cho thư mục: CHMOD chuẩn dành cho các thư mục để website Wordpress hoạt động tốt là 755. Để an toàn hơn nữa bạn có thể CHMOD 2 thư mục wp-admin và wp-include là 700. Tuy nhiên nếu là 700 thì khi cần cập nhật phiên bản wordpress mới thì bạn phải thao tác thủ công bởi vì nó không thể ghi đè các tệp tin vào.

Cách 2: Giấu kỹ file config

Hacker vẫn có thể tìm ra dù bạn có giấu kỹ file config, tuy nhiên việc giấu file wp-config.php đi cũng hạn chế phần nào sự tấn công từ các hacker mới vào nghề.

Thông thường file config sẽ có đường dẫn là : .../public_html/wp-config.php do đó chúng ta có thể giấu nó đi bằng cách copy file config ra ngoài thư mục public_html, có thể tạo 1 thư mục "/bao_mat/" ngang cấp với /public_html/ và bỏ file wp-config.php vào đó. Cuối cùng ta sửa lại nội dung file config đang nằm trong thư mục /puclic_html thành như sau

01
02
03
04
<php
  if ( !defined('ABSPATH') )
    define('ABSPATH', dirname(__FILE__) . '/');
  require_once(ABSPATH . '../bao_mat/wp-config.php');

Cách 3: Hạn chế tấn công thông qua đăng nhập

Cách mà hacker rất hay sử dụng đó là tấn công thông qua trang đăng nhập. Để hạn chế được khả năng tấn công này chúng ta cần đảm bảo được các vấn đề sau:

- Tên đăng nhập khó đoán ra.
- Mật khẩu dài, mạnh, có ký tự đặc biệt và không liên quan đến các thông tin cá nhân.
- Hạn chế số lần đăng nhập sai.
- Bảo mật đường dẫn đăng nhập.
- Thường xuyên thay đổi mật khẩu.

Chúng ta có thể sử dụng plugin Better WP Security để thực hiện ẩn đường dẫn đăng nhập và hạn chế số lần đăng nhập sai. Hoặc có thể sử dụng thêm plugin Login Security Solution -Plugin này giúp chặn các IP xấu hay các truy vấn kiểu brute force có trong dữ liệu của riêng họ.

Đó là những cách cơ bản mà bạn có thể dễ dàng thực hiện giúp bảo mật cho website Wordpress, hạn chế phần nào tấn công từ hacker.

Thứ Năm, 15 tháng 10, 2020

Chỉnh sửa tabs trang chi tiết sản phẩm custom product tabs

Giao diện trang sản phẩm của website Wordpress sử dụng plugin Woocommerce khá đầy đủ và tối ưu cho cả người dùng lẫn quản trị web. Nhưng đôi khi product tabs của woocommerce chưa "thỏa mãn" yêu cầu sử dụng của chúng ta và chúng ta muốn thay đổi chúng: đổi tên tabs thông tin sản phẩm, xóa tabs, thay đổi vị trí tabs product, thêm mới tab... Bài chia sẻ này chúng tôi nói về chỉnh sửa tabs trang chi tiết sản phẩm (custom product tabs)

Lưu ý: Bạn cần thêm mã dưới đây vào tập tin function.php của child themes, để khi update themes cha thì mã không bị xóa mất khỏi themes.

Xóa các tabs

Sử dụng đoạn mã sau để xóa các tabs cụ thể. Removing product tabs

01
02
03
04
05
06
07
08
09
10
11
// Remove product data tabs
add_filter( 'woocommerce_product_tabs', 'woo_remove_product_tabs', 98 );
 
function woo_remove_product_tabs( $tabs ) {
 
    unset( $tabs['description'] );          // Remove the description tab
    unset( $tabs['reviews'] );          // Remove the reviews tab
    unset( $tabs['additional_information'] );   // Remove the additional information tab
 
    return $tabs;
}

Đổi tên tabs

Sử dụng đoạn mã sau để đổi tên các tab. Renaming product tabs

01
02
03
04
05
06
07
08
09
10
11
// Rename product data tabs
add_filter( 'woocommerce_product_tabs', 'woo_rename_tabs', 98 );
function woo_rename_tabs( $tabs ) {
 
    $tabs['description']['title'] = __( 'More Information' );       // Rename the description tab
    $tabs['reviews']['title'] = __( 'Ratings' );                // Rename the reviews tab
    $tabs['additional_information']['title'] = __( 'Product Data' );    // Rename the additional information tab
 
    return $tabs;
 
}

Sắp xếp lại các tabs

Sử dụng đoạn mã sau để thay đổi thứ tự tab. Re-ordering product tabs

01
02
03
04
05
06
07
08
09
10
// Reorder product data tabs
add_filter( 'woocommerce_product_tabs', 'woo_reorder_tabs', 98 );
function woo_reorder_tabs( $tabs ) {
 
    $tabs['reviews']['priority'] = 5;           // Reviews first
    $tabs['description']['priority'] = 10;          // Description second
    $tabs['additional_information']['priority'] = 15;   // Additional information third
 
    return $tabs;
}

Tùy chỉnh một tab

Đoạn mã sau sẽ thay thế tab mô tả bằng chức năng tùy chỉnh. Customize a product tabs

01
02
03
04
05
06
07
08
09
10
11
12
13
// Customize product data tabs
add_filter( 'woocommerce_product_tabs', 'woo_custom_description_tab', 98 );
function woo_custom_description_tab( $tabs ) {
 
    $tabs['description']['callback'] = 'woo_custom_description_tab_content';    // Custom description callback
 
    return $tabs;
}
 
function woo_custom_description_tab_content() {
    echo '<h2>Custom Description</h2>';
    echo '<p>Here\'s a custom description</p>';
}

Thêm một tab tùy chỉnh

Sử dụng đoạn mã sau để thêm tabs sản phẩm toàn cầu tùy chỉnh. Add a custom product tabs

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// Add a custom product data tab
add_filter( 'woocommerce_product_tabs', 'woo_new_product_tab' );
function woo_new_product_tab( $tabs ) {
     
    // Adds the new tab
     
    $tabs['test_tab'] = array(
        'title'     => __( 'New Product Tab', 'woocommerce' ),
        'priority'  => 50,
        'callback'  => 'woo_new_product_tab_content'
    );
 
    return $tabs;
 
}
function woo_new_product_tab_content() {
 
    // The new tab content
 
    echo '<h2>New Product Tab</h2>';
    echo '<p>Here\'s your new product tab.</p>';
     
}

Đổi tên tabs thông tin bổ sung

Tabs “Additional Information” chỉ hiển thị nếu sản phẩm có trọng lượng, kích thước hoặc thuộc tính.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
// Rename the additional information tabs
add_filter( 'woocommerce_product_tabs', 'woo_rename_tabs', 98 );
 
function woo_rename_tabs( $tabs ) {
 
    global $product;
     
    if( $product->has_attributes() || $product->has_dimensions() || $product->has_weight() ) { // Check if product has attributes, dimensions or weight
        $tabs['additional_information']['title'] = __( 'Product Data' );   
    }
  
    return $tabs;
  
}