Share plugin Ông Donald Trump He He

Share plugin Ông Donald Trump He He

Ngày 13 - 10 - 2017 - Tại chuyên mục: Share code - Lượt xem: 703

Chào các bạn lâu rồi không viết bài gì hết, mình đang dự định sắp tới sẽ share một code tin tức cho các bạn sài :D. Tại mình thấy cái code tin tức đợt trước mình share bữa ni nó cùi quá rồi, nhưng mấy bạn vẫn dùng nhiều, thấy tội quá nên thôi share cái khác để sài oke hơn. Đó là dự định sắp tới còn hôm nay mình sẽ share cho các bạn một plugin mang tên “Trump Plugin“, chức năng của nó như thế nào thì bạn đọc tiếp phần phía dưới nhé :)))

Nói về Ông Donald Trump đây là một nhân vật mình khá thích :v, không biết những gì ổng làm ở Mỹ có ảnh hưởng chi đến mình không, nhưng đại khái mình thích những người có cá tính mạnh như ổng. Vì thích và rảnh nên mình suy nghĩ ra cái plugin này.

Demo

Share plugin Donald Trump

Demo online: https://huykira.net Kéo xuống phía dưới bên trái nha 😀

Chức năng:

Plugin này mình đặt tên là: Trump Plugin

Chức năng: Dùng để thông báo cho khách khi truy cập vào web mình biết địa chỉ IP, hệ điều hành, trình duyệt họ đang dùng :D.

Đọc tới đây chắc mấy bạn thấy củ chuối đúng không. Mới đầu khi mình làm cái plugin này xong mình cũng thấy củ chuối, nhưng một hồi suy nghĩ thì hóa ra nó củ chuối thiệt =))).

Mục đích:

Mục đích đâu tiên mình viết ra plugin này năm mục đích giải trí :D, Code một cái gì đó code xong mình thấy vui vui, thỏa mái, chả sợ bug, nhưng lại hoàn thành được một sản phẩm đi khoe với gấu, bạn bè :3 .

Mục đích thứ 2 mình muốn hướng dẫn cho các bạn cách viết một cái plugin đơn giản trong wordpress là không khó :D. Chỉ vài dòng code đã có được một plugin “ngon lành“.

Share plugin ông Donald Trump:

Hướng dẫn

Download về cài như 1 plugin bình thường, Duy chuyển vào admin -> giao diện -> Widget để sử dụng:

 

Về code của plugin, nó là tập hợp của một số hàm như sau:

Hàm lấy địa chỉ IP của khách khi truy cập:

function get_visitor_ip() {
    $result = '';
    if(!empty($_SERVER['HTTP_CLIENT_IP'])) {
        $result = $_SERVER['HTTP_CLIENT_IP'];
    } elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
        $result = $_SERVER['HTTP_X_FORWARDED_FOR'];
    } else {
        $result = $_SERVER['REMOTE_ADDR'];
    }
    $result = apply_filters('wpb_get_ip', $result);
    return $result;
}

Hàm lấy tên trình duyệt khách đang sử dụng:

function get_browser_name() {
    $result = 'Unknown Browser';
    $browsers = array(
        '/msie/i' => 'Internet Explorer',
        '/firefox/i' => 'Firefox',
        '/chrome/i' => 'Chrome',
        '/safari/i' => 'Safari',
        '/opera/i' => 'Opera',
        '/netscape/i' => 'Netscape',
        '/maxthon/i' => 'Maxthon',
        '/konqueror/i' => 'Konqueror',
        '/mobile/i' => 'Handheld Browser'
    );
    $user_agent = $_SERVER['HTTP_USER_AGENT'];
    foreach($browsers as $regex => $value) {
        if (preg_match($regex, $user_agent)) {
            $result = $value;
            break;
        }
    }
    return $result;
}

Hàm lấy tên hệ điều hành khách đang sử dụng:

function get_operating_system() {
    $result = 'Unknown OS';
    $os = array(
        '/windows nt 10.0/i' => 'Windows 10',
        '/windows nt 6.3/i' => 'Windows 8.1',
        '/windows nt 6.2/i' => 'Windows 8',
        '/windows nt 6.1/i' => 'Windows 7',
        '/windows nt 6.0/i' => 'Windows Vista',
        '/windows nt 5.2/i' => 'Windows Server 2003/XP x64',
        '/windows nt 5.1/i' => 'Windows XP',
        '/windows xp/i' => 'Windows XP',
        '/windows nt 5.0/i' => 'Windows 2000',
        '/windows me/i' => 'Windows ME',
        '/win98/i' => 'Windows 98',
        '/win95/i' => 'Windows 95',
        '/win16/i' => 'Windows 3.11',
        '/macintosh|mac os x/i' => 'Mac OS X',
        '/mac_powerpc/i' => 'Mac OS 9',
        '/linux/i' => 'Linux',
        '/ubuntu/i' => 'Ubuntu',
        '/iphone/i' => 'iPhone',
        '/ipod/i' => 'iPod',
        '/ipad/i' => 'iPad',
        '/android/i' => 'Android',
        '/blackberry/i' => 'BlackBerry',
        '/webos/i' => 'Mobile'
    );
    $user_agent = $_SERVER['HTTP_USER_AGENT'];
    foreach($os as $regex => $value) {
        if(preg_match($regex, $user_agent)) {
            $result = $value;
            break;
        }
    }
    return $result;
}

Hàm tạo widget:

class Trump_Widget extends WP_Widget {
 function Trump_Widget() {
 $tpwidget_options = array(
 'classname' => 'Trump_widget_class', //ID của widget
 'description' => 'Hiển thị ông Trump ra ngoài'
 );
 $this->WP_Widget('Trump_widget_id', 'Trump Widget', $tpwidget_options);
 }
 function form( $instance ) {
 $default = array(
 'title' => 'Tôi là Donald Trump'
 );
 $instance = wp_parse_args( (array) $instance, $default);
 $title = esc_attr( $instance['title'] );
 echo "<p>Nhập tiêu đề <input type='text' class='widefat' name='".$this->get_field_name('title')."' value='".$title."' /></p>";
 }
 function update( $new_instance, $old_instance ) {
 
 $instance = $old_instance;
 $instance['title'] = strip_tags($new_instance['title']);
 return $instance;
 }
 function widget( $args, $instance ) {
 extract( $args );
 $title = apply_filters( 'widget_title', $instance['title'] );
 echo $before_widget;
 echo $before_title.$title.$after_title; ?>
 <link rel="stylesheet" href="<?php echo TRUMP_PLUGIN_URL.'trump.css'?>"">
 <div class="trump-widget">
 <div class="content">
 <center>Chào mừng bạn đến với website</center>
 <p><strong>IP của bạn là: </strong><?php echo get_visitor_ip(); ?></p>
 <p><strong>Trình duyệt: </strong><?php echo get_browser_name(); ?></p>
 <p><strong>Hệ điều hành: </strong><?php echo get_operating_system(); ?></p>
 </div>
 <img src="<?php echo TRUMP_PLUGIN_URL.'trump.png'?>" alt="trump">
 </div>
 <?php echo $after_widget;
 }
}
add_action( 'widgets_init', 'create_Trump_widget' );
function create_Trump_widget() {
 register_widget('Trump_Widget');
}

Còn một số hàm khác các bạn có thể tham khảo tại github của mình tại đây: https://github.com/HuyKira/Trump-Plugin

Plugin mình tạo ra với tính chất giải trí, mình thích viết mấy cái plugin như thế này cho zui =)), chứ code mấy cái plugin hoành tráng để bán thì hại não lắm. Với công việc chủ yếu là làm trên công ty, tối về code mấy cái bạy bạy cho zui chứ cắm đầu vào code mấy cái kia thì chết sớm 😀

Chúc các bạn code zui zẻ…!

HuyKira

Đam mê hóa học, ưng thi vào trường kinh tế… Đậu vào trường Sư phạm, quyết tâm đi dạy… Ra trường đi làm designer, tự học frontend, chuyển qua làm PHP, được công ty đào tạo laravel… Và hiện tại đang code react native… 😂😂 tối về viết blog… (Còn tiếp…)

5
AVT