Hành trình develop và public plugin wordpress


Giới thiệu tính năng plugin mình xíu Simple Coupon Import

Cũng có 1 kênh affiliate làm bằng wordpress https://sanphamtienich.com/ 

Đang dùng theme của wp-coupon chuyện là mỗi ngày nhờ cô vợ vào nhập copuon bên accesstrade.

Mấy ngày đầu thì hào hừng OK, mấy ngày sau ẻm làm biếng thôi thì mình dev thử 1 plugin cho nó sycn từ accsstrade về luôn.

Trước giờ thì có dev theme wordpress còn plugin chưa, lần đầu nên khi up code lên thì cũng bị 1 vài issue

Các dev thì mình khỏi nói hen.

Một số lỗi thường gặp thường là lỗi 

Họ review và chỉ ra lỗi ở đâu dòng nào cho mình xử lý lại.

Ví dụ: 

## Data Must be Sanitized, Escaped, and Validated
When you include POST/GET/REQUEST/FILE calls in your plugin, it's important to sanitize, validate, and escape them. The goal here is to prevent a user from accidentally sending trash data through the system, as well as protecting them from potential security issues.

SANITIZE: Data that is input (either by a user or automatically) must be sanitized as soon as possible. This lessens the possibility of XSS vulnerabilities and MITM attacks where posted data is subverted.

VALIDATE: All data should be validated, no matter what. Even when you sanitize, remember that you don’t want someone putting in ‘dog’ when the only valid values are numbers.

ESCAPE: Data that is output must be escaped properly when it is echo'd, so it can't hijack admin screens. There are many esc_*() functions you can use to make sure you don't show people the wrong data.

To help you with this, WordPress comes with a number of sanitization and escaping functions. You can read about those here:

Remember: You must use the most appropriate functions for the context. If you’re sanitizing email, use sanitize_email(), if you’re outputting HTML, use esc_html(), and so on.

An easy mantra here is this:

Sanitize early
Escape Late
Always 
Validate

Clean everything, check everything, escape everything, and never trust the users to always have input sane data. After all, users come from all walks of life.

Example(s) from your plugin:

src/controller/admin/connects.php:20: update_option('wic_limit', $_POST['limit']);
src/controller/admin/connects.php:21: update_option('wic_page', $_POST['page_number']);
src/controller/admin/connects.php:22: update_option('wic_domain', $_POST['domain']);

Fix xong rồi thì reply lại email đó thôi. 

- Lời khuyên anh em up source mình lên github rồi fix xong gửi kèm ref + tạo tag version cho bên họ review nhanh.

- Đây là cách mình làm, anh em tham khảo thử.


Sau khi update xong thì mình nhận được 1 mail thông báo kết nối up source lên SVN



Tới bước này thì ngon lành.

- Anh em nào dùng mac như mình thì cái svn vào

- Mở terminal lên:

brew install svn


- Chờ một chút cài đặt vào.

Sau đó checkout source về, có gửi link trong mail cho mình như hình dưới



svn checkout https://plugins.svn.wordpress.org/simple-coupon-import


Source checkout về có 3 folder


Source đó copy code mình bỏ vào folder trunk như hình trên.

Hình ảnh đại diện, avatar, hình demo thì bỏ vào asset, nhớ đặt tên theo cấu trúc quy định xem thêm ở đây:

- banner-772×250.png

- icon-256x256.png

- screenshot-1.png

- screenshot-2.png

Plugin Assets (header images, etc):
https://developer.wordpress.org/plugins/wordpress-org/plugin-assets/





Tiếp tục commit code và update lên server plugins wordpress

- cd đến folder simple-coupon-import

svn add * --force


- commit code

svn commit -m "first commit init source"


Tới đây nếu bạn là lần đầu tiên thì nó bắt đăng nhập tài khoản vào, tài khoản login của wordpress bình thường


- Cuối cùng up code lên

svn update


Như vậy là xong

Xem plugin tại trang wordpress


Download Simple Coupon Import