Changeset 1360761
- Timestamp:
- 02/29/2016 01:24:35 PM (10 years ago)
- Location:
- webcourier
- Files:
-
- 56 added
- 2 deleted
- 11 edited
-
tags/1.0 (added)
-
tags/1.0/assets (added)
-
tags/1.0/assets/admin.css (added)
-
tags/1.0/cool-php-captcha-master (added)
-
tags/1.0/cool-php-captcha-master/.gitignore (added)
-
tags/1.0/cool-php-captcha-master/LICENSE.txt (added)
-
tags/1.0/cool-php-captcha-master/README.md (added)
-
tags/1.0/cool-php-captcha-master/captcha.php (added)
-
tags/1.0/cool-php-captcha-master/example-form.php (added)
-
tags/1.0/cool-php-captcha-master/resources (added)
-
tags/1.0/cool-php-captcha-master/resources/fonts (added)
-
tags/1.0/cool-php-captcha-master/resources/fonts/AntykwaBold.ttf (added)
-
tags/1.0/cool-php-captcha-master/resources/fonts/Candice.ttf (added)
-
tags/1.0/cool-php-captcha-master/resources/fonts/Ding-DongDaddyO.ttf (added)
-
tags/1.0/cool-php-captcha-master/resources/fonts/Duality.ttf (added)
-
tags/1.0/cool-php-captcha-master/resources/fonts/Heineken.ttf (added)
-
tags/1.0/cool-php-captcha-master/resources/fonts/Jura.ttf (added)
-
tags/1.0/cool-php-captcha-master/resources/fonts/StayPuft.ttf (added)
-
tags/1.0/cool-php-captcha-master/resources/fonts/TimesNewRomanBold.ttf (added)
-
tags/1.0/cool-php-captcha-master/resources/fonts/VeraSansBold.ttf (added)
-
tags/1.0/cool-php-captcha-master/resources/tools (added)
-
tags/1.0/cool-php-captcha-master/resources/tools/dictionary-import (added)
-
tags/1.0/cool-php-captcha-master/resources/tools/dictionary-import/README.txt (added)
-
tags/1.0/cool-php-captcha-master/resources/tools/dictionary-import/importwords.php (added)
-
tags/1.0/cool-php-captcha-master/resources/tools/dictionary-import/sample-words-en.txt (added)
-
tags/1.0/cool-php-captcha-master/resources/tools/dictionary-import/sample-words-es.txt (added)
-
tags/1.0/cool-php-captcha-master/resources/words (added)
-
tags/1.0/cool-php-captcha-master/resources/words/en.php (added)
-
tags/1.0/cool-php-captcha-master/resources/words/es.php (added)
-
tags/1.0/css (added)
-
tags/1.0/css/install.css (added)
-
tags/1.0/css/styles.css (added)
-
tags/1.0/inc (added)
-
tags/1.0/inc/Requester.php (added)
-
tags/1.0/inc/form_get_email_newsletter.php (added)
-
tags/1.0/js (added)
-
tags/1.0/js/ControllerPesquisaAdd.js (added)
-
tags/1.0/js/ControllerPesquisaList.js (added)
-
tags/1.0/js/ajax.js (added)
-
tags/1.0/js/angular.min.js (added)
-
tags/1.0/js/pesquisa-add.js (added)
-
tags/1.0/readme.txt (added)
-
tags/1.0/src (added)
-
tags/1.0/src/EventHandler.php (added)
-
tags/1.0/src/geral_webcourier_footer.php (added)
-
tags/1.0/src/webcourier (added)
-
tags/1.0/src/webcourier/Loader.php (added)
-
tags/1.0/views (added)
-
tags/1.0/views/config.php (added)
-
tags/1.0/views/geral_webcourier.php (added)
-
tags/1.0/views/pesquisa.php (added)
-
tags/1.0/views/pesquisa_add.php (added)
-
tags/1.0/views/pesquisa_api_error.php (added)
-
tags/1.0/views/pesquisa_index.php (added)
-
tags/1.0/views/webcourierFunctions.php (added)
-
tags/1.0/webcourier.php (added)
-
trunk/css/styles.css (modified) (2 diffs)
-
trunk/inc/form_get_email_newsletter.php (modified) (2 diffs)
-
trunk/js/ControllerPesquisaAdd.js (modified) (1 diff)
-
trunk/js/ControllerPesquisaList.js (modified) (1 diff)
-
trunk/readme.txt (modified) (1 diff)
-
trunk/src/EventHandler.php (modified) (2 diffs)
-
trunk/src/webcourier/Loader.php (modified) (2 diffs)
-
trunk/views/config.php (deleted)
-
trunk/views/pesquisa_add.php (modified) (5 diffs)
-
trunk/views/pesquisa_api_error.php (modified) (1 diff)
-
trunk/views/pesquisa_index.php (modified) (6 diffs)
-
trunk/views/webcourierFunctions.php (deleted)
-
trunk/webcourier.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
webcourier/trunk/css/styles.css
r1358106 r1360761 226 226 } 227 227 228 .delete-style-lonely:before{ 229 cursor:pointer; 230 padding-left: 30px; 231 content:'\f182'; 232 } 233 228 234 .onShop:before{ 229 235 cursor:pointer; … … 236 242 color:red; 237 243 content:'\f174'; 244 } 245 246 .onPost:before{ 247 cursor:pointer; 248 content:'\f125'; 249 } 250 251 .onRegister:before{ 252 cursor:pointer; 253 content:'\f338'; 238 254 } 239 255 -
webcourier/trunk/inc/form_get_email_newsletter.php
r1340724 r1360761 30 30 } 31 31 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; 35 34 ?> 36 35 <div> … … 44 43 <?php endif; ?> 45 44 <h5>Cadastre-se em nossa newsletter</h5> 45 <div style="display:block"> 46 46 <label for="nome">Nome:</label> 47 47 <input name="nome" type="text" id="nome" value=""/> 48 </div> 49 <div style="display:block; margin-top: 10px"> 48 50 <label for="email">E-mail:</label> 49 51 <input name="email" type="text" id="email" value=""/> 52 </div> 50 53 <?php if ($showErrorCaptcha): ?> 51 54 <div id="result" style="color: red;"> -
webcourier/trunk/js/ControllerPesquisaAdd.js
r1358372 r1360761 151 151 var evento = "OnFail"; 152 152 break; 153 case "OnComment": 154 var evento = "OnComment"; 155 break; 156 case "OnRegister": 157 var evento = "OnRegister"; 158 break; 153 159 default: 154 160 var evento = ""; -
webcourier/trunk/js/ControllerPesquisaList.js
r1358273 r1360761 6 6 $scope.vm.pesquisas = pesquisas; 7 7 $scope.vm.url = url; 8 console.log($scope.vm.pesquisas); 8 9 9 10 $scope.edit_search = function(idx){ -
webcourier/trunk/readme.txt
r1358335 r1360761 8 8 License URI: http://www.gnu.org/licenses/gpl-2.0.html 9 9 10 Plugin feito para envio de pesquisas de satisfação.10 Plugin feito para facilitar a adição dos seus usuários nos seus grupos de email. 11 11 12 12 == 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.13 O 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. 14 14 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. 20 17 21 18 == Installation == 22 19 23 1. Registre-se em http://app.webcourier.com.br/ e c rie sua chave API na seção de administradores.20 1. 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. 24 21 2. No seu site wordpress, faça o upload do `webcourier.zip` para a pasta `wp-content/plugins`. 25 22 3. 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. 23 4. Para utilizar o form do plugin, adicione o shortcode [form_webcourier_newsletter_shortcode]. 28 24 29 25 == Changelog == 30 26 27 = 0.1 = 28 * Release inicial. 29 31 30 = 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 12 12 * @author dgledson.rabelo 13 13 */ 14 function 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 } 14 20 15 function send_search_after_purchase_is_done_woocommerce($order_id) { 21 add_action('woocommerce_order_status_completed', 'send_search_after_purchase_is_done_woocommerce'); 22 23 function 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 30 add_action('woocommerce_order_status_failed', 'send_search_after_purchase_is_failed_woocommerce'); 31 32 function send_search_after_comment_is_post() { 33 $params = ["Comentário" => 777]; 34 $searchType = "OnComment"; 35 echo "comentário"; 36 sendRequest($params,$searchType); 37 } 38 39 add_action('comment_post', 'send_search_after_comment_is_post'); 40 41 function send_search_after_user_register() { 42 $params = ["Register" => 777]; 43 $searchType = "OnRegister"; 44 sendRequest($params,$searchType); 45 } 46 47 add_action('user_register', 'send_search_after_user_register'); 48 49 function sendRequest($params, $searchType) { 50 $user_info = wp_get_current_user(); 51 $user_id_from_email = get_user_by('ID', get_current_blog_id()); 16 52 $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'); 18 54 parse_str($meta_value[0], $user_user); 19 55 if (!empty($user_user)) { 20 56 $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 } 22 72 } 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 };32 73 $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 } 35 84 $body = array( 36 85 'sid' => $survey_idx, 37 86 'to' => $to, 38 'params' => $params,39 87 'api' => $api, 88 'params' => $params 40 89 ); 41 90 $url = "http://app.webcourier.com.br/api/survey/send"; … … 46 95 } 47 96 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']); 97 function firstKey($params) { 98 foreach ($params as $nome => $id) 99 return $nome; 80 100 } 81 101 82 add_action('woocommerce_order_status_failed', 'send_search_after_purchase_is_failed_woocommerce'); 83 102 function firstValue($params) { 103 foreach ($params as $id) 104 return $id; 105 } -
webcourier/trunk/src/webcourier/Loader.php
r1358377 r1360761 18 18 // add_submenu_page('mt-top-level-handle', 'Configurações', 'Configurações', 'manage_options', 'sub-page-config', 'mt_sublevel_config'); 19 19 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'); 21 21 } 22 22 … … 36 36 // } 37 37 38 //function mt_sublevel_sobre() {39 //echo "<h2>Sobre</h2>";40 //}38 // function mt_sublevel_sobre() { 39 // echo "<h2>Sobre</h2>"; 40 // } 41 41 42 42 } -
webcourier/trunk/views/pesquisa_add.php
r1357578 r1360761 17 17 $results['sendOnFail'] = $survey_idx; 18 18 break; 19 case "OnComment": 20 $results['sendOnComment'] = $survey_idx; 21 break; 22 case "OnRegister": 23 $results['sendOnRegister'] = $survey_idx; 24 break; 19 25 } 20 26 update_user_meta(get_current_user_id(), 'webcourier_api_key', http_build_query($results)); … … 31 37 { 32 38 $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"; 33 47 } 34 48 $request = new WP_Http; … … 65 79 <option value="OnBuy">Quando o status da compra for concluído</option> 66 80 <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> 67 83 </select> 68 84 </div> … … 70 86 <h3>Título *</h3> 71 87 <input type="text" name="" class="widefat" value="" 72 placeholder="" ng-model="vm.surveyTitle" >88 placeholder="" ng-model="vm.surveyTitle" required> 73 89 </div> 74 90 <div class="form-search-from"> 75 91 <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> 77 93 </div> 78 94 <div> … … 82 98 <div> 83 99 <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> 85 101 </div> 86 102 <div> 87 103 <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> 89 105 </div> 90 106 <div style="padding-top:10px"> -
webcourier/trunk/views/pesquisa_api_error.php
r1357578 r1360761 1 <?php2 defined("ABSPATH") or exit;3 ?>4 1 <div> 5 2 <h2 style="display: none"></h2> <?php //h2 falso para mensagens de erro ?> -
webcourier/trunk/views/pesquisa_index.php
r1358106 r1360761 1 1 <?php 2 defined('ABSPATH') or exit;3 2 $currentUrl = $_SERVER['REQUEST_URI']; 4 3 $url = $currentUrl . '&view=pesquisa-add'; 5 if(isset($_POST['removeid'])) 6 {4 $sendOnBuy = $sendOnFail = $sendOnComment = 0; 5 if (isset($_POST['removeid'])) { 7 6 $removeid = $_POST['removeid']; 8 7 $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) { 13 11 unset($values['pesquisa_id'][$key]); 14 12 } 15 13 update_user_meta(get_current_user_id(), 'webcourier_api_key', http_build_query($values)); 16 14 } 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'); 16 parse_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; 21 21 ?> 22 22 <div class="wrap webcourier-search"> … … 29 29 <h1 class="page-title">Pesquisas</h1> 30 30 31 <h2 style="display: none;"></h2><?php // fake h2 for admin notices ?>31 <h2 style="display: none;"></h2><?php // fake h2 for admin notices ?> 32 32 33 33 <!-- Wrap entire page in <form> --> … … 35 35 36 36 <input type="hidden" name="_webcourier_action" value="add_form" /> 37 <?php wp_nonce_field(); ?>37 <?php wp_nonce_field(); ?> 38 38 39 39 <div class="small-margin"> … … 50 50 <thead> 51 51 <tr colspan="3"> 52 <th>Id</th> 52 53 <th>Nome</th> 53 54 <th style="text-align:center">Evento Associado</th> … … 57 58 <tbody> 58 59 <tr ng-repeat="(idx,x) in vm.pesquisas track by $index" ng-if="filterByName(x.name)"> 60 <td>{{x.survey_idx}}</td> 59 61 <td>{{x.name}}</td> 60 62 <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> 62 64 <td class="width20" ng-if="x.survey_idx == <?= $sendOnFail ?>" 63 65 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> 68 82 </tr> 69 83 </tbody> 70 84 </table> 71 85 </div> 72 <?php submit_button('Criar Pesquisa'); ?>86 <?php submit_button('Criar Pesquisa'); ?> 73 87 74 88 </form><!-- Entire page form wrap --> … … 80 94 <!-- Sidebar --> 81 95 <!-- <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'; ?> 83 97 </div>--> 84 98 -
webcourier/trunk/webcourier.php
r1358335 r1360761 7 7 Description: Plugin utilizado para adicionar usuários que são cadastrados através do wordpress do cliente 8 8 Author: WebCourier 9 Version: 1. 010 Stable tag: 1. 09 Version: 1.1 10 Stable tag: 1.1 11 11 Author URI: http://www.webcourier.com.br/ 12 12 License: GPLv2
Note: See TracChangeset
for help on using the changeset viewer.