kanikase
Préstamo impago
1
Xi
Programador
Verificación en dos pasos activada
Suscripción a IA
AVISO 2017
Este post foi criado em janeiro de 2016 (há mais de 1 ano), na internet é preciso inovar, não sei se isso ainda funciona...De qualquer forma, NÃO USAR COM ADSENSE.
Olá de novo betas, neste novo tutorial vou ensinar vocês a criar um plugin WordPress, o que ele faz é forçar o usuário a clicar na publicidade para mostrar conteúdo, como um link de download, o plugin é simples, então quase todo o código será colocado no mesmo arquivo do plugin para não criar muitos arquivos.
Vamos começar com o tutorial:
Primeiro aviso, que não explicarei todos os arquivos para não deixar o tutorial muito longo, apenas o php principal e o que obtém o link
A primeira coisa que temos que fazer é criar uma pasta com o nome do plugin, no meu caso é AdsKanikase (não sou muito criativo XD):
Agora na pasta, vamos criar os arquivos necessários, um arquivo tem que ter o mesmo nome, e a extensão php:, no meu caso seria assim:
- admin.php
- AdsKanikase.php
- get_link.php
- scripts.js
Agora, abrimos o arquivo do plugin php, no meu caso AdsKanikase.php, e nele, colamos isto:
PHP:
<?php
/*
Plugin Name: AdsKanikase
Description: Plugin para forzar click en la publicidad antes de mostrar un enlace
Version: 1.0
Author: kanikase
Author URI: http://kanikase.com
*/
?>
Ali colocamos todos os dados, primeiro o nome do plugin (o mesmo da pasta e do arquivo), segundo a descrição, terceiro a versão, quarto o autor, e o último, a url do autor do plugin.
Já salvam, com isso já é possível subir o plugin (comprimindo a pasta em .zip) e ativá-lo, mas ainda não faz nada.
O código vou colocar por partes
Continuamos editando esse arquivo, mas agora colamos este código:
PHP:
// obtenemos las configuraciones
$adskanikase_configs = get_option('adskanikase_configs');
// funcion para encriptar los datos que estan en base64
function encrypt_content($string, $key){
return base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), $string, MCRYPT_MODE_CBC, md5(md5($key))));
}
// la funcion que hara que se cambie el shortcode por la publicidad en los posts
function adskanikase_shortcode($atts, $content) {
// agregamos la variable de las configuraciones
global $adskanikase_configs;
// datos que vamos a poner en el div como data-id
$arr = array(
'url' => $content,
'image' => $atts['image'],
'text' => $atts['text'],
);
// los datos en json, encriptados
$data = str_replace('+', '-', encrypt_content(json_encode($arr), $adskanikase_configs['key']));
return <<<HTML
<div id="adsClick" data-id="{$data}">
<span class="texto">{$adskanikase_configs['texto']}</span>
<div id="pubpub">
{$adskanikase_configs['codigo']}
</div>
</div>
HTML;
}
// agregamos el shortcode
add_shortcode($adskanikase_configs['shortcode'], 'adskanikase_shortcode');
Ali está comentado, mas explicarei um pouco mais. A primeira coisa que fazemos é obter as configurações, é a primeira coisa que fazemos porque vamos usá-las desde o início, depois está a função de criptografar, com ela criptografaremos os dados que vamos colocar no código-fonte da página, neste caso, são os dados da url, a imagem e o texto, que estão em json, para que os usuários não possam obter nada a partir do código-fonte. Por último é a função que adiciona o código dos posts, dependendo do que foi configurado no plugin e no shortcode.
Já que isso está pronto, agora colocamos este código:
PHP:
<?php
// agregar javascript
function add_js_adskanikase() {
$datos = array('ajaxurl' => plugins_url('get_link.php', __FILE__));
wp_enqueue_script('AdsKanikase', plugins_url('scripts.js', __FILE__));
wp_localize_script('AdsKanikase', 'AdsKanikase', $datos);
}
add_action('wp_footer', 'add_js_adskanikase');
function add_css_adskanikase() {
?>
<style type="text/css">
#adsClick {
width: 100%;
box-sizing: border-box;
margin: 15px 0;
padding: 10px;
border: 1px solid #EEE;
text-align: center;
border-radius: 4px;
}
#adsClick .texto {
font-family: monospace;
color: #333;
display: block;
font-style: italic;
}
#adsClick #pubpub {
margin: 15px auto;
}
</style>
<?php
}
add_action('wp_head', 'add_css_adskanikase');
Agora vamos adicionar isto, tudo é para as configurações e o painel de controle:
PHP:
// las configurciones del panel
function panel_adskanikase() {
add_menu_page('Panel de control AdsKanikase', 'AdsKanikase', 'manage_options', 'adskanikase', 'ads_panel');
}
add_action('admin_menu', 'panel_adskanikase');
// para imprimir el panel
function ads_panel() {
global $adskanikase_configs;
include_once __DIR__ . '/admin.php';
}
/*-- AGREGAR/ELIMINAR OPCIONES --*/
function agregar_opciones() {
// configuraciones al activar el plugin
$data = json_decode('{"codigo":"CÓDIGO DE PUBLICIDAD","codigoHTML":"<center><a href=\"%LINK%\" target=\"_blank\" title=\"%TEXT%\"><img src=\"%IMAGE%\"><\/a><\/center>","key":"kanikase","texto":"Click de la publicidad para descargar","shortcode":"adskanikase"}', true);
add_option('adskanikase_configs', $data);
}
register_activation_hook(__FILE__, 'agregar_opciones');
// eliminar configuraciones al desactivar el plugin
function eliminar_opciones() {
delete_option('adskanikase_configs');
}
register_deactivation_hook(__FILE__, 'eliminar_opciones');
/*-- GUARDAR CONFIGURACIONES AJAX --*/
function adskanikase_config() {
// coprobamos que ningún campo de texto esté vacío, si alguno está vacio, mostramos el error y terminamos todo con wp_die
foreach($_POST as $key) {
if(empty($key)){
echo '<div id="message" class="error"><p><strong>Error!</strong> tienes que llenar todos los campos!</p></div>';
wp_die();
}
}
// creamos un arreglo con las configuraciones, con los datos del formulario
$configs = array(
'codigo' => limpiar($_POST['codigo']),
'codigoHTML' => limpiar($_POST['codigoHTML']),
'key' => limpiar($_POST['key']),
'texto' => limpiar($_POST['texto']),
'shortcode' => limpiar($_POST['shortcode']),
);
// si se guardan las configuraciones, mostramos el mensaje de exito, y si no se guardan mostramos mensaje de error
if (update_option('adskanikase_configs', $configs))
echo '<div id="message" class="updated"><p><strong>Éxito!</strong> los cambios han sido guardados</p></div>';
else
echo '<div id="message" class="error"><p><strong>Error!</strong> los cambios no han sido guardados</p></div>';
wp_die();
}
add_action('wp_ajax_config_adskanikase', 'adskanikase_config');
Também está comentado o mais importante, mas explicarei:
As duas primeiras funções são as encarregadas de tudo o que tem a ver com o painel, todas as configurações, como o título, o nome da página, etc.
Nas duas funções seguintes, é onde, primeiro ao ativar o plugin, adicionamos configurações, e ao desativá-lo as eliminamos.
A função seguinte é para salvar as alterações, ali primeiro verificamos se nenhum campo de texto está vazio, se algum estivesse vazio é exibida uma mensagem de erro, depois termina de executar tudo, para evitar que as configurações sejam salvas, se nenhum campo de texto estiver vazio, o que fazemos agora é, criar um array com as configurações que são:
- O código HTML da publicidade
- O código HTML base para mostrar nos posts
- A key para descriptografar
- O texto acima da publicidade
- O nome do shortcode
Já com isso podem salvar, e agora abrem o arquivo get_link.php, e nele colam o seguinte código:
PHP:
<?php
// obtenemos el directorio de la instalacion
$dir = explode('wp-', __FILE__);
// incluimos el archivo wp-load.php
require_once $dir[0].'wp-load.php';
// obtenemos las configuraciones
$adskanikase_configs = get_option('adskanikase_configs');
// funcion para desencriptar
function decrypt_content($encrypted, $key){
return rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode($encrypted), MCRYPT_MODE_CBC, md5(md5($key))), "\0");
}
// funcion para reemplazar %LIK% y lo demás, por lo que se haya puesto en el shortcode
function edit_HTML($HTML, $JSON) {
return str_replace(array('%LINK%', '%IMAGE%', '%TEXT%'), array($JSON['url'], $JSON['image'], $JSON['text']), $HTML);
}
// cuando se abre por ajax
if (!empty($_POST) && $_POST['action']=='decrypt') {
// en el codigo encriptado, reemplazamos los - por +
$data = str_replace('-', '+', $_POST['id']);
// desencriptamos el codigo a json
$json = decrypt_content($data, $adskanikase_configs['key']);
// convertimos el json a un array
$json = json_decode($json, true);
// mostramos el HTML
echo edit_HTML($adskanikase_configs['codigoHTML'], $json);
}
?>
É o que faz muito do trabalho, no post, ao clicar no anúncio, enviamos por ajax os dados de data-id que estão na div, isto é um json criptografado (para que não se obtenha o link do código-fonte XD), quando o arquivo get_link.php recebe, nesse arquivo, primeiro incluímos o arquivo wp-load.php, do WordPress, este vamos usar para poder usar a função get_option, precisamos dela porque assim obtemos as configurações do plugin, onde estão a key para descriptografar, e o código HTML base para mostrar no post ao clicar na publicidade.
Esse arquivo assim já salvamos, não precisa de mais nada.
E pois é tudo no tutorial, como disse no início, não explicarei tudo para não deixar o tutorial muito longo, mas abaixo deixarei o download do plugin.
CAPTURAS
USO
USO
Pode ser usado de muitas formas, para mostrar o conteúdo que quisermos, inclusive para vídeos, nesse caso eu configuraria assim para o YouTube:
Já dependendo de vocês saberão como usá-lo 🙂
BAIXAR PLUGIN COMPLETO
Espero que lhes sirva.
Abraços.
Última edição: