Plugin Directory

Changeset 1360761


Ignore:
Timestamp:
02/29/2016 01:24:35 PM (10 years ago)
Author:
dgledson
Message:

lançamento da versao 1.1

Location:
webcourier
Files:
56 added
2 deleted
11 edited

Legend:

Unmodified
Added
Removed
  • webcourier/trunk/css/styles.css

    r1358106 r1360761  
    226226}
    227227
     228.delete-style-lonely:before{
     229    cursor:pointer;
     230    padding-left: 30px;
     231    content:'\f182';
     232}
     233
    228234.onShop:before{
    229235    cursor:pointer;
     
    236242    color:red;
    237243    content:'\f174';
     244}
     245
     246.onPost:before{
     247    cursor:pointer;
     248    content:'\f125';
     249}
     250
     251.onRegister:before{
     252    cursor:pointer;
     253    content:'\f338';
    238254}
    239255
  • webcourier/trunk/inc/form_get_email_newsletter.php

    r1340724 r1360761  
    3030}
    3131
    32 $html = get_home_url();
    33 $root = "/wp-content/plugins/webcourier/cool-php-captcha-master/captcha.php?";
    34 $url = $html . $root;
     32$root = plugins_url() . "/webcourier/cool-php-captcha-master/captcha.php?";
     33$url = $root;
    3534?>
    3635<div>
     
    4443        <?php endif; ?>
    4544        <h5>Cadastre-se em nossa newsletter</h5>
     45        <div style="display:block">
    4646        <label for="nome">Nome:</label>
    4747        <input name="nome" type="text" id="nome" value=""/>
     48        </div>
     49        <div style="display:block; margin-top: 10px">
    4850        <label for="email">E-mail:</label>
    4951        <input name="email" type="text" id="email" value=""/>
     52        </div>
    5053        <?php if ($showErrorCaptcha): ?>
    5154            <div id="result" style="color: red;">
  • webcourier/trunk/js/ControllerPesquisaAdd.js

    r1358372 r1360761  
    151151                                var evento = "OnFail";
    152152                                break;
     153                            case "OnComment":
     154                                var evento = "OnComment";
     155                                break;
     156                            case "OnRegister":
     157                                var evento = "OnRegister";
     158                                break;
    153159                            default:
    154160                                var evento = "";
  • webcourier/trunk/js/ControllerPesquisaList.js

    r1358273 r1360761  
    66            $scope.vm.pesquisas = pesquisas;
    77            $scope.vm.url = url;
     8            console.log($scope.vm.pesquisas);
    89           
    910            $scope.edit_search = function(idx){
  • webcourier/trunk/readme.txt

    r1358335 r1360761  
    88License URI: http://www.gnu.org/licenses/gpl-2.0.html
    99
    10 Plugin feito para envio de pesquisas de satisfação.
     10Plugin feito para facilitar a adição dos seus usuários nos seus grupos de email.
    1111
    1212== Description ==
    13 O plugin do webcourier permite que você gerencie pesquisas de forma sincronizada com a API do webcourier e defina em quais eventos suas pesquisas serão lançadas.
     13O plugin do webcourier permite você adicionar um simples formulário para o seu site wordpress em que seus usuários podem facilmente se cadastrar e serão automaticamente sincronizados com seu grupo do WebCourier.
    1414
    15 Você pode verificar em sua conta da aplicação do webcourier relatórios e gráficos das respostas enviadas.
    16 
    17 Exemplo : Você pode definir uma pesquisa para que ela seja enviada na finalização de uma compra.
    18 
    19 Como uma função adicional, você pode utilizar o shortcode [form_webcourier_newsletter_shortcode] para criar um formulário que cadastra automaticamente os clientes na sua caixa de email do webcourier.
     15* Na hora em que o usuário cadastra o form do plugin, ele é adicionado no grupo no seu domínio.
     16* Também é adicionado um filtro contendo este grupo que foi criado, você pode utilizado para gerar uma campanha rapidamente ou usar um filtro seu.
    2017
    2118== Installation ==
    2219
    23 1. Registre-se em http://app.webcourier.com.br/ e crie sua chave API na seção de administradores.
     201. Registre-se em http://app.webcourier.com.br/ e cadastre o domínio do seu site clicando no ícone do wordpress no canto superior direito da tela.
    24212. No seu site wordpress, faça o upload do `webcourier.zip` para a pasta `wp-content/plugins`.
    25223. Ative o plugin pelo menu 'Plugins' no Wordpress.
    26 4. Sincronize sua chave API com o plugin webcourier.
    27 5. Crie pesquisas e defina seus eventos.
     234. Para utilizar o form do plugin, adicione o shortcode [form_webcourier_newsletter_shortcode].
    2824
    2925== Changelog ==
    3026
     27= 0.1 =
     28* Release inicial.
     29
    3130= 1.0 =
    32 * Release inicial.
     31* Adicionado eventos de compra.
     32
     33= 1.1 =
     34* Adicionado eventos de usuário (comentar e se registrar).
  • webcourier/trunk/src/EventHandler.php

    r1358106 r1360761  
    1212 * @author dgledson.rabelo
    1313 */
     14function send_search_after_purchase_is_done_woocommerce($order_id) {
     15    $params = ["Produto" => $order_id];
     16    $searchType = "OnBuy";
     17    echo "purchase done";
     18    sendRequest($params,$searchType);
     19}
    1420
    15 function send_search_after_purchase_is_done_woocommerce($order_id) {
     21add_action('woocommerce_order_status_completed', 'send_search_after_purchase_is_done_woocommerce');
     22
     23function send_search_after_purchase_is_failed_woocommerce($order_id) {
     24    $params = array("Produto" => $order_id);
     25    $searchType = "OnFail";
     26    echo "failed";
     27    sendRequest($params,$searchType);     
     28}
     29
     30add_action('woocommerce_order_status_failed', 'send_search_after_purchase_is_failed_woocommerce');
     31
     32function send_search_after_comment_is_post() {
     33    $params = ["Comentário" => 777];
     34    $searchType = "OnComment";
     35    echo "comentário";
     36    sendRequest($params,$searchType);
     37}
     38
     39add_action('comment_post', 'send_search_after_comment_is_post');
     40
     41function send_search_after_user_register() {
     42    $params = ["Register" => 777];
     43    $searchType = "OnRegister";
     44    sendRequest($params,$searchType);
     45}
     46
     47add_action('user_register', 'send_search_after_user_register');
     48
     49function sendRequest($params, $searchType) {
     50    $user_info = wp_get_current_user();
     51    $user_id_from_email = get_user_by('ID', get_current_blog_id());
    1652    $request = new WP_Http;
    17     $meta_value = get_user_meta(get_current_user_id(), 'webcourier_api_key');
     53    $meta_value = get_user_meta($user_id_from_email->ID, 'webcourier_api_key');
    1854    parse_str($meta_value[0], $user_user);
    1955    if (!empty($user_user)) {
    2056        $api = $user_user['api'];
    21         $survey_idx = $user_user['sendOnBuy'];
     57        switch($searchType)
     58        {
     59            case 'OnBuy':
     60                $survey_idx = $user_user['sendOnBuy'];
     61                break;
     62            case 'OnFail':
     63                $survey_idx = $user_user['sendOnFail'];
     64                break;
     65            case 'OnComment':
     66                $survey_idx = $user_user['sendOnComment'];
     67                break;
     68            case 'OnRegister':
     69                $survey_idx = $user_user['sendOnRegister'];
     70                break;
     71        }
    2272    }
    23     $order = new WC_Order($order_id);
    24     $items = $order->get_items();
    25     $produtos = $produto = array();
    26     foreach ($items as $item) {
    27         $produto['name'] = $item['name'];
    28         $produto['id'] = $item['product_id'];
    29         $produto['variation_id'] = $item['variation_id'];
    30         array_push($produtos, $produto);
    31     };
    3273    $to = array();
    33     $params = ["Número pedido" => $order_id];
    34     array_push($to, $order->billing_email);
     74    if (firstKey($params) == 'Produto') {
     75        $order = new WC_Order(firstValue($params));
     76        array_push($to, $order->billing_email);
     77        $items = $order->get_items();
     78        foreach ($items as $item) {
     79            $produtos[$item['name']] = intval($item['product_id']);
     80        };
     81    } else {
     82        array_push($to, $user_info->user_email);
     83    }
    3584    $body = array(
    3685        'sid' => $survey_idx,
    3786        'to' => $to,
    38         'params' => $params,
    3987        'api' => $api,
     88        'params' => $params
    4089    );
    4190    $url = "http://app.webcourier.com.br/api/survey/send";
     
    4695}
    4796
    48 add_action('woocommerce_order_status_completed', 'send_search_after_purchase_is_done_woocommerce');
    49 
    50 function send_search_after_purchase_is_failed_woocommerce($order_id) {
    51     $produtos = $produto = array();
    52     $request = new WP_Http;
    53     $meta_value = get_user_meta(get_current_user_id(), 'webcourier_api_key');
    54     parse_str($meta_value[0], $user_user);
    55     if (!empty($user_user)) {
    56         $api = $user_user['api'];
    57         $survey_idx = $user_user['sendOnFail'];
    58     }
    59     $order = new WC_Order($order_id);
    60     $items = $order->get_items();
    61     foreach ($items as $item) {
    62         $produto['name'] = $item['name'];
    63         $produto['id'] = $item['product_id'];
    64         $produto['variation_id'] = $item['variation_id'];
    65         array_push($produtos, $produto);
    66     };
    67     $to = array();
    68     array_push($to, $order->billing_email);
    69     $body = array(
    70         'sid' => $survey_idx,
    71         'to' => $to,
    72         'api' => $api,
    73         'produtos' => $produtos
    74     );
    75     $url = "http://app.webcourier.com.br/api/survey/send";
    76     $headers = array('Accept-Language' => '*');
    77     $result = $request->request($url, array('method' => 'POST', 'body' => $body,
    78         'headers' => $headers));
    79     $response = json_decode($result['body']);
     97function firstKey($params) {
     98    foreach ($params as $nome => $id)
     99        return $nome;
    80100}
    81101
    82 add_action('woocommerce_order_status_failed', 'send_search_after_purchase_is_failed_woocommerce');
    83 
     102function firstValue($params) {
     103    foreach ($params as $id)
     104        return $id;
     105}
  • webcourier/trunk/src/webcourier/Loader.php

    r1358377 r1360761  
    1818//            add_submenu_page('mt-top-level-handle', 'Configurações', 'Configurações', 'manage_options', 'sub-page-config', 'mt_sublevel_config');
    1919
    20             // add_submenu_page('mt-top-level-handle', 'Sobre', 'Sobre', 'manage_options', 'sub-page-sobre', 'mt_sublevel_sobre');
     20//            add_submenu_page('mt-top-level-handle', 'Sobre', 'Sobre', 'manage_options', 'sub-page-sobre', 'mt_sublevel_sobre');
    2121        }
    2222
     
    3636//        }
    3737
    38         // function mt_sublevel_sobre() {
    39         //     echo "<h2>Sobre</h2>";
    40         // }
     38//        function mt_sublevel_sobre() {
     39//            echo "<h2>Sobre</h2>";
     40//        }
    4141
    4242    }
  • webcourier/trunk/views/pesquisa_add.php

    r1357578 r1360761  
    1717            $results['sendOnFail'] = $survey_idx;
    1818            break;
     19        case "OnComment":
     20            $results['sendOnComment'] = $survey_idx;
     21            break;
     22        case "OnRegister":
     23            $results['sendOnRegister'] = $survey_idx;
     24            break;
    1925    }
    2026    update_user_meta(get_current_user_id(), 'webcourier_api_key', http_build_query($results));
     
    3137    {
    3238        $currentEvento = "OnFail";
     39    }
     40    if(intval($results['sendOnComment']) == $survey_idx)
     41    {
     42        $currentEvento = "OnComment";
     43    }
     44    if(intval($results['sendOnRegister']) == $survey_idx)
     45    {
     46        $currentEvento = "OnRegister";
    3347    }
    3448    $request = new WP_Http;
     
    6579                            <option value="OnBuy">Quando o status da compra for concluído</option>
    6680                            <option value="OnFail">Quando o status da compra for falhado</option>
     81                            <option value="OnComment">Quando um usuário comentar em um post</option>
     82                            <option value="OnRegister">Quando um usuário se registar em seu site</option>
    6783                        </select>
    6884                    </div>
     
    7086                        <h3>Título *</h3>
    7187                        <input type="text" name="" class="widefat" value=""
    72                                placeholder="" ng-model="vm.surveyTitle">
     88                               placeholder="" ng-model="vm.surveyTitle" required>
    7389                    </div>
    7490                    <div class="form-search-from">
    7591                        <h3>De *</h3>
    76                         <input type="text" value="" ng-model="vm.surveyFrom" style="width:300px">
     92                        <input type="text" value="" ng-model="vm.surveyFrom" style="width:300px" required>
    7793                    </div>
    7894                    <div>
     
    8298                    <div>
    8399                        <h3>Texto da pesquisa *</h3>
    84                         <textarea class="widefat" ng-model="vm.surveyText" rows="2"></textarea>
     100                        <textarea class="widefat" ng-model="vm.surveyText" rows="2" required></textarea>
    85101                    </div>
    86102                    <div>
    87103                        <h3>Texto do email *</h3>
    88                         <textarea class="widefat" ng-model="vm.surveyEmail" rows="10"></textarea>
     104                        <textarea class="widefat" ng-model="vm.surveyEmail" rows="10" required></textarea>
    89105                    </div>
    90106                    <div style="padding-top:10px">
  • webcourier/trunk/views/pesquisa_api_error.php

    r1357578 r1360761  
    1 <?php
    2 defined("ABSPATH") or exit;
    3 ?>
    41<div>
    52    <h2 style="display: none"></h2> <?php //h2 falso para mensagens de erro ?>
  • webcourier/trunk/views/pesquisa_index.php

    r1358106 r1360761  
    11<?php
    2 defined('ABSPATH') or exit;
    32$currentUrl = $_SERVER['REQUEST_URI'];
    43$url = $currentUrl . '&view=pesquisa-add';
    5 if(isset($_POST['removeid']))
    6 {
     4$sendOnBuy = $sendOnFail = $sendOnComment = 0;
     5if (isset($_POST['removeid'])) {
    76    $removeid = $_POST['removeid'];
    87    $meta_value = get_user_meta(get_current_user_id(), 'webcourier_api_key');
    9     parse_str($meta_value[0],$values);
    10     $key = array_search($removeid,$values['pesquisa_id']);
    11     if($key !== false)
    12     {
     8    parse_str($meta_value[0], $values);
     9    $key = array_search($removeid, $values['pesquisa_id']);
     10    if ($key !== false) {
    1311        unset($values['pesquisa_id'][$key]);
    1412    }
    1513    update_user_meta(get_current_user_id(), 'webcourier_api_key', http_build_query($values));
    1614}
    17 $events = get_user_meta(get_current_user_id(),'webcourier_api_key');
    18 parse_str($events[0],$events);
    19 $sendOnBuy = $events['sendOnBuy'];
    20 $sendOnFail = $events['sendOnFail'];
     15$events = get_user_meta(get_current_user_id(), 'webcourier_api_key');
     16parse_str($events[0], $events);
     17$events['sendOnBuy'] ? $sendOnBuy = $events['sendOnBuy'] : $sendOnBuy = 0;
     18$events['sendOnFail'] ? $sendOnFail = $events['sendOnFail'] : $sendOnFail = 0;
     19$events['sendOnComment'] ? $sendOnComment = $events['sendOnComment'] : $sendOnComment = 0;
     20$events['sendOnRegister'] ? $sendOnRegister = $events['sendOnRegister'] : $sendOnRegister = 0;
    2121?>
    2222<div class="wrap webcourier-search">
     
    2929            <h1 class="page-title">Pesquisas</h1>
    3030
    31             <h2 style="display: none;"></h2><?php // fake h2 for admin notices     ?>
     31            <h2 style="display: none;"></h2><?php // fake h2 for admin notices      ?>
    3232
    3333            <!-- Wrap entire page in <form> -->
     
    3535
    3636                <input type="hidden" name="_webcourier_action" value="add_form" />
    37                 <?php wp_nonce_field(); ?>
     37<?php wp_nonce_field(); ?>
    3838
    3939                <div class="small-margin">
     
    5050                        <thead>
    5151                            <tr colspan="3">
     52                                <th>Id</th>
    5253                                <th>Nome</th>
    5354                                <th style="text-align:center">Evento Associado</th>
     
    5758                        <tbody>
    5859                            <tr ng-repeat="(idx,x) in vm.pesquisas track by $index" ng-if="filterByName(x.name)">
     60                                <td>{{x.survey_idx}}</td>
    5961                                <td>{{x.name}}</td>
    6062                                <td class="width20" ng-if="x.survey_idx == <?= $sendOnBuy ?>"
    61                                     title="Compra terminada"><i class="dashicons-before onShop"></i></td>
     63                                    title="Compra concluída"><i class="dashicons-before onShop"></i></td>
    6264                                <td class="width20" ng-if="x.survey_idx == <?= $sendOnFail ?>"
    6365                                    title="Compra falhada"><i class="dashicons-before onFail"></i></td>
    64                                 <td class="width20" ng-if="x.survey_idx != <?= $sendOnBuy ?> && x.survey_idx != <?= $sendOnFail ?>">-</td>
    65                                 <td class="width20"><span title="Editar" ng-click="edit_search(x.survey_idx)" class="dashicons-before edit-style"></span>
    66                                     <span title="Deletar" ng-click="delete_search(x.survey_idx,idx)"
    67                                    class="dashicons-before delete-style"></span></td>
     66                                <td class="width20" ng-if="x.survey_idx == <?= $sendOnComment ?>"
     67                                    title="Comentário postado"><i class="dashicons-before onPost"></i></td>
     68                                <td class="width20" ng-if="x.survey_idx == <?= $sendOnRegister ?>"
     69                                    title="Usuário registrado"><i class="dashicons-before onRegister"></i></td>
     70                                <td class="width20" ng-if="x.survey_idx != <?= $sendOnBuy ?>
     71                                    && x.survey_idx != <?= $sendOnFail ?>
     72                                    && x.survey_idx != <?= $sendOnComment ?>
     73                                    && x.survey_idx != <?= $sendOnRegister ?>">-</td>
     74                                <td class="width20">
     75                                    <i ng-if="x.boleano == 'false'" title="Editar" ng-click="edit_search(x.survey_idx)"
     76                                       class="dashicons-before edit-style"></i>
     77                                    <i ng-if="x.boleano == 'false'" title="Deletar" ng-click="delete_search(x.survey_idx, idx)"
     78                                       class="dashicons-before delete-style"></i>
     79                                    <i ng-if="x.boleano == 'true'" title="Deletar" ng-click="delete_search(x.survey_idx, idx)"
     80                                       class="dashicons-before delete-style-lonely"></i>
     81                                </td>
    6882                            </tr>
    6983                        </tbody>
    7084                    </table>
    7185                </div>
    72                 <?php submit_button('Criar Pesquisa'); ?>
     86<?php submit_button('Criar Pesquisa'); ?>
    7387
    7488            </form><!-- Entire page form wrap -->
     
    8094        <!-- Sidebar -->
    8195        <!--        <div class="sidebar col col-2">
    82         <?php //include WEBCOURIER_PLUGIN_DIR . 'includes/views/parts/admin-sidebar.php';   ?>
     96<?php //include WEBCOURIER_PLUGIN_DIR . 'includes/views/parts/admin-sidebar.php';    ?>
    8397                </div>-->
    8498
  • webcourier/trunk/webcourier.php

    r1358335 r1360761  
    77  Description: Plugin utilizado para adicionar usuários que são cadastrados através do wordpress do cliente
    88  Author: WebCourier
    9   Version: 1.0
    10   Stable tag: 1.0
     9  Version: 1.1
     10  Stable tag: 1.1
    1111  Author URI: http://www.webcourier.com.br/
    1212  License: GPLv2
Note: See TracChangeset for help on using the changeset viewer.