YOP Poll - Version 4.9.2

Version Description

  • Fixed security issue
Download this release

Release Info

Developer yourownprogrammer
Plugin Icon 128x128 YOP Poll
Version 4.9.2
Comparing to
See all releases

Code changes from version 4.9.1 to 4.9.2

Files changed (5) hide show
  1. inc/admin.php +14 -0
  2. inc/yop_poll_model.php +138 -2
  3. js/yop-poll-public.js +6 -2
  4. readme.txt +81 -78
  5. yop_poll.php +2 -2
inc/admin.php CHANGED
@@ -471,6 +471,11 @@
471
$this->update_to_4_9_1();
472
update_option( "yop_poll_version", $wpdb->yop_poll_version );
473
}
474
}
475
476
public function update_to_4_2() {
@@ -7835,11 +7840,13 @@ EOT;
7835
$error = '';
7836
$success = '';
7837
$message = '';
7838
if ( is_admin() ){
7839
$poll_id = isset ( $_REQUEST ['poll_id'] ) ? $_REQUEST ['poll_id'] : 0;
7840
$unique_id = isset ( $_REQUEST ['unique_id'] ) ? $_REQUEST ['unique_id'] : '';
7841
$location = isset ( $_REQUEST ['location'] ) ? $_REQUEST ['location'] : 'page';
7842
$tr_id = isset ( $_REQUEST ['tr_id'] ) ? $_REQUEST ['tr_id'] : '';
7843
if ( $poll_id ){
7844
require_once( $this->_config->plugin_inc_dir . '/yop_poll_model.php' );
7845
$yop_poll_model = new YOP_POLL_MODEL ( $poll_id );
@@ -7859,6 +7866,13 @@ EOT;
7859
$error = __( 'Invalid Request! Try later!', 'yop_poll' );
7860
}
7861
}
7862
print '[ajax-response]' . json_encode( array( 'error' => $error, 'success' => $success, 'message' => $message ) ) . '[/ajax-response]';
7863
die ();
7864
}
471
$this->update_to_4_9_1();
472
update_option( "yop_poll_version", $wpdb->yop_poll_version );
473
}
474
+
475
+ if ( version_compare( $installed_version, '4.9.1', '<=' ) ){
476
+
477
+ update_option( "yop_poll_version", $wpdb->yop_poll_version );
478
+ }
479
}
480
481
public function update_to_4_2() {
7840
$error = '';
7841
$success = '';
7842
$message = '';
7843
+
7844
if ( is_admin() ){
7845
$poll_id = isset ( $_REQUEST ['poll_id'] ) ? $_REQUEST ['poll_id'] : 0;
7846
$unique_id = isset ( $_REQUEST ['unique_id'] ) ? $_REQUEST ['unique_id'] : '';
7847
$location = isset ( $_REQUEST ['location'] ) ? $_REQUEST ['location'] : 'page';
7848
$tr_id = isset ( $_REQUEST ['tr_id'] ) ? $_REQUEST ['tr_id'] : '';
7849
+ if ( wp_verify_nonce( $_REQUEST['yop-poll-nonce-' . $poll_id . $unique_id], 'yop_poll-' . $poll_id . $unique_id . '-user-actions' ) ){
7850
if ( $poll_id ){
7851
require_once( $this->_config->plugin_inc_dir . '/yop_poll_model.php' );
7852
$yop_poll_model = new YOP_POLL_MODEL ( $poll_id );
7866
$error = __( 'Invalid Request! Try later!', 'yop_poll' );
7867
}
7868
}
7869
+
7870
+ else {
7871
+ $error = __( 'Bad Request! Try later!', 'yop_poll' );
7872
+ }
7873
+
7874
+ }
7875
+
7876
print '[ajax-response]' . json_encode( array( 'error' => $error, 'success' => $success, 'message' => $message ) ) . '[/ajax-response]';
7877
die ();
7878
}
inc/yop_poll_model.php CHANGED
@@ -2412,7 +2412,8 @@
2412
$poll_id = $this->poll['id'];
2413
$unique_id = $this->unique_id;
2414
$location = $request['location'];
2415
- if ( wp_verify_nonce( $request['yop-poll-nonce-' . $poll_id . $unique_id], 'yop_poll-' . $poll_id . $unique_id . '-user-actions' ) ){
2416
$poll_details = $this->poll;
2417
$poll_options = $this->poll_options;
2418
$vote_id = uniqid( 'vote_id_' );
@@ -2446,6 +2447,7 @@
2446
}
2447
2448
$current_date = YOP_POLL_MODEL::get_mysql_curent_date();
2449
if ( $this->is_allowed_to_vote( $vote_type, $facebook_user_details ) ){
2450
if ( $current_date >= $poll_details['start_date'] ){
2451
if ( $current_date <= $poll_details['end_date'] ){
@@ -2464,6 +2466,8 @@
2464
$voter['user_id'] = $facebook_user_id;
2465
$voter['user_type'] = $vote_type;
2466
}
2467
if ( $this->user_have_votes_to_vote( $voter ) ){
2468
if ( isset ( $request['yop_poll_answer'] ) ){
2469
if ( 'yes' == $poll_options['allow_multiple_answers'] ){
@@ -2492,6 +2496,7 @@
2492
if ( isset( $request['yop_poll_other_answer'] ) ){
2493
if ( '' != strip_tags( trim( $request['yop_poll_other_answer'] ) ) ){
2494
$answer['other_answer_value'] = strip_tags( $request['yop_poll_other_answer'] );
2495
$answer['type'] = 'other';
2496
}
2497
else {
@@ -2539,6 +2544,14 @@
2539
if ( 'other' == $answer_details['type'] ){
2540
if ( isset( $request['yop_poll_other_answer'] ) ){
2541
if ( '' != strip_tags( trim( $request['yop_poll_other_answer'] ) ) ){
2542
$answer['other_answer_value'] = strip_tags( $request['yop_poll_other_answer'] );
2543
$answer['type'] = 'other';
2544
}
@@ -2604,7 +2617,7 @@
2604
$votes = 0;
2605
$mail_notifications_answers = '';
2606
foreach ( $answers as &$answer ) {
2607
- if ( 'facebook' == $vote_type ){
2608
$answer['user_id'] = $facebook_user_id;
2609
}
2610
if ( 'anonymous' == $vote_type ){
@@ -2800,6 +2813,11 @@
2800
$this->error = __( 'Bad Request!', 'yop_poll' );
2801
return false;
2802
}
2803
}
2804
2805
public function return_poll_css( $attr = array( 'location' => 'page', 'preview' => false, 'template_id' => '', 'loc' => 1 ) ) {
@@ -2947,7 +2965,125 @@
2947
return $t;
2948
}
2949
}
2950
2951
public function return_poll_html( $attr = array( 'tr_id' => '', 'location' => 'page', 'load_css' => false, 'load_js' => false ) ) {
2952
$tr_id = isset( $attr['tr_id'] ) ? $attr['tr_id'] : '';
2953
$location = isset( $attr['location'] ) ? $attr['location'] : 'page';
2412
$poll_id = $this->poll['id'];
2413
$unique_id = $this->unique_id;
2414
$location = $request['location'];
2415
+ yop_poll_dump($request['yop-poll-nonce-' . $poll_id . $unique_id]);
2416
+ if( wp_verify_nonce( $request['yop-poll-nonce-' . $poll_id . $unique_id], 'yop_poll-' . $poll_id . $unique_id . '-user-actions' ) ) {
2417
$poll_details = $this->poll;
2418
$poll_options = $this->poll_options;
2419
$vote_id = uniqid( 'vote_id_' );
2447
}
2448
2449
$current_date = YOP_POLL_MODEL::get_mysql_curent_date();
2450
+ if( wp_verify_nonce( $request['yop-poll-nonce-' . $poll_id . $unique_id], 'yop_poll-' . $poll_id . $unique_id . '-user-actions' ) ) {
2451
if ( $this->is_allowed_to_vote( $vote_type, $facebook_user_details ) ){
2452
if ( $current_date >= $poll_details['start_date'] ){
2453
if ( $current_date <= $poll_details['end_date'] ){
2466
$voter['user_id'] = $facebook_user_id;
2467
$voter['user_type'] = $vote_type;
2468
}
2469
+
2470
+
2471
if ( $this->user_have_votes_to_vote( $voter ) ){
2472
if ( isset ( $request['yop_poll_answer'] ) ){
2473
if ( 'yes' == $poll_options['allow_multiple_answers'] ){
2496
if ( isset( $request['yop_poll_other_answer'] ) ){
2497
if ( '' != strip_tags( trim( $request['yop_poll_other_answer'] ) ) ){
2498
$answer['other_answer_value'] = strip_tags( $request['yop_poll_other_answer'] );
2499
+
2500
$answer['type'] = 'other';
2501
}
2502
else {
2544
if ( 'other' == $answer_details['type'] ){
2545
if ( isset( $request['yop_poll_other_answer'] ) ){
2546
if ( '' != strip_tags( trim( $request['yop_poll_other_answer'] ) ) ){
2547
+ $ans = self::yop_poll_get_answer_from_db($poll_id);
2548
+ foreach($ans as $a){
2549
+
2550
+ if(strtoupper (strip_tags( $request['yop_poll_other_answer'] ))==strtoupper( $a['answer'])) {
2551
+ $this->error = __( 'mesaj de eroare!', 'yop_poll' );
2552
+ return false;
2553
+ }
2554
+ }
2555
$answer['other_answer_value'] = strip_tags( $request['yop_poll_other_answer'] );
2556
$answer['type'] = 'other';
2557
}
2617
$votes = 0;
2618
$mail_notifications_answers = '';
2619
foreach ( $answers as &$answer ) {
2620
+ if ( 'facebook' == $vote_type ){
2621
$answer['user_id'] = $facebook_user_id;
2622
}
2623
if ( 'anonymous' == $vote_type ){
2813
$this->error = __( 'Bad Request!', 'yop_poll' );
2814
return false;
2815
}
2816
+ }
2817
+ else {
2818
+ $this->error = __( 'Bad Request!', 'yop_poll' );
2819
+ return false;
2820
+ }
2821
}
2822
2823
public function return_poll_css( $attr = array( 'location' => 'page', 'preview' => false, 'template_id' => '', 'loc' => 1 ) ) {
2965
return $t;
2966
}
2967
}
2968
+ public function back_4_9_1(){}
2969
+
2970
2971
+
2972
+
2973
+ public function yop_poll_get_answer_from_db($id) {
2974
+ global $wpdb;
2975
+ $answer = $wpdb->get_results( $wpdb->prepare( "
2976
+ SELECT *
2977
+ FROM " . $wpdb->yop_poll_answers . "
2978
+ WHERE poll_id = %d
2979
+ ",$id ), ARRAY_A );
2980
+ return $answer;
2981
+
2982
+ }
2983
+
2984
+ public function yop_poll_get_polls_meta_from_db() {
2985
+ global $wpdb;
2986
+ $result = $wpdb->get_results( $GLOBALS['wpdb']->prepare( "
2987
+ SELECT *
2988
+ FROM " . $wpdb->prefix . "yop2_pollmeta ORDER BY yop_poll_id ASC
2989
+ " ), ARRAY_A );
2990
+ return $result;
2991
+
2992
+ }
2993
+
2994
+ public function yop_poll_get_answers_meta_from_db() {
2995
+ global $wpdb;
2996
+
2997
+ $result = $wpdb->get_results( $GLOBALS['wpdb']->prepare( "
2998
+ SELECT *
2999
+ FROM " . $wpdb->prefix . "yop2_poll_answermeta
3000
+ " ), ARRAY_A );
3001
+ return $result;
3002
+
3003
+ }
3004
+
3005
+ public function yop_poll_get_questions_from_db() {
3006
+ global $wpdb;
3007
+ $result = $wpdb->get_results( $wpdb->prepare( "
3008
+ SELECT *
3009
+ FROM " . $wpdb->prefix . "yop2_poll_questions ORDER BY poll_id ASC
3010
+ " ), ARRAY_A );
3011
+ return $result;
3012
+ }
3013
+
3014
+ public function yop_poll_get_custom_fields_from_db() {
3015
+ global $wpdb;
3016
+ $result = $wpdb->get_results( $GLOBALS['wpdb']->prepare( "
3017
+ SELECT *
3018
+ FROM " . $wpdb->prefix . "yop2_poll_custom_fields ORDER BY poll_id ASC
3019
+ " ), ARRAY_A );
3020
+ return $result;
3021
+ }
3022
+
3023
+ public function yop_poll_get_custom_fields_votes_from_db() {
3024
+ global $wpdb;
3025
+ $result = $wpdb->get_results( $GLOBALS['wpdb']->prepare( "
3026
+ SELECT *
3027
+ FROM " . $wpdb->prefix . "yop2_poll_votes_custom_fields
3028
+ " ), ARRAY_A );
3029
+ return $result;
3030
+ }
3031
+
3032
+ public function yop_poll_get_bans_from_db() {
3033
+ global $wpdb;
3034
+ $result = $wpdb->get_results( $wpdb->prepare( "
3035
+ SELECT *
3036
+ FROM " . $wpdb->prefix . "yop2_poll_bans ORDER BY poll_id ASC
3037
+ " ), ARRAY_A );
3038
+ return $result;
3039
+ }
3040
+
3041
+ public function yop_poll_get_answers_from_db() {
3042
+ global $wpdb;
3043
+ $result = $wpdb->get_results( $wpdb->prepare( "
3044
+ SELECT *
3045
+ FROM " . $wpdb->prefix . "yop2_poll_answers ORDER BY poll_id ASC
3046
+ " ), ARRAY_A );
3047
+ return $result;
3048
+ }
3049
+
3050
+ public function yop_poll_get_logs_from_db() {
3051
+ global $wpdb;
3052
+ $result = $wpdb->get_results( $wpdb->prepare( "
3053
+ SELECT *
3054
+ FROM " . $wpdb->prefix . "yop2_poll_logs
3055
+ " ), ARRAY_A );
3056
+ return $result;
3057
+ }
3058
+
3059
+ private static function insert_ban_in_db( $ban ) {
3060
+ global $wpdb;
3061
+ $sql = $wpdb->query( $wpdb->prepare( "
3062
+ INSERT INTO $wpdb->yop_poll_bans
3063
+ ( poll_id,type,value,period ,unit)
3064
+ VALUES(%d,%s,%s,%d,%s)
3065
+ ", $ban['poll_id'], $ban['type'], $ban['value'], intval( $ban['period'] ), $ban['unit'] ) );
3066
+ return $wpdb->get_results( $sql );
3067
+ }
3068
+ private function save_poll_order( $poll, $poll_order ) {
3069
+ $poll_archive_order = get_option( 'yop_poll_archive_order', array() );
3070
+ if( $poll_archive_order == "" ) {
3071
+ $poll_archive_order = array();
3072
+ }if( trim( $poll_order ) <= 0 ) {
3073
+ $poll_order = 1;
3074
+ }
3075
+ $key = array_search( $poll, $poll_archive_order );
3076
+ if( $key !== false ) {
3077
+ unset( $poll_archive_order[$key] );
3078
+ }
3079
+ if( $poll_order > count( $poll_archive_order ) ) {
3080
+ array_push( $poll_archive_order, $poll );
3081
+ }
3082
+ else {
3083
+ array_splice( $poll_archive_order, trim( $poll_order ) - 1, 0, array( $poll ) );
3084
+ }
3085
+ update_option( 'yop_poll_archive_order', $poll_archive_order );
3086
+ }
3087
public function return_poll_html( $attr = array( 'tr_id' => '', 'location' => 'page', 'load_css' => false, 'load_js' => false ) ) {
3088
$tr_id = isset( $attr['tr_id'] ) ? $attr['tr_id'] : '';
3089
$location = isset( $attr['location'] ) ? $attr['location'] : 'page';
js/yop-poll-public.js CHANGED
@@ -327,10 +327,14 @@ function yop_poll_view_results( poll_id, poll_location, unique_id ) {
327
result_link_loading_image.id = 'yop_poll_result_link_loading_img-'+ poll_id + unique_id;
328
jQuery('#yop_poll_result_link'+ poll_id + unique_id).after( result_link_loading_image );
329
jQuery('#yop_poll_result_link_loading_img-'+ poll_id + unique_id ).css( 'border', 'none' );
330
jQuery.ajax({
331
type: 'POST',
332
url: yop_poll_public_config_general.ajax.url,
333
- data: 'action='+yop_poll_public_config_general.ajax.view_results_action+'&poll_id=' + poll_id + '&unique_id=' + unique_id + '&location=' + poll_location + '&tr_id=' + jQuery('#yop-poll-tr-id-' + poll_id + unique_id ).val(),
334
cache: false,
335
error: function() {
336
alert('An error has occured!');
@@ -357,7 +361,7 @@ function yop_poll_view_results( poll_id, poll_location, unique_id ) {
357
jQuery( '#yop-poll-container-success-'+ poll_id + unique_id ).html('');
358
}
359
}
360
- jQuery('#yop_poll_result_link_loading_img-'+ poll_id + unique_id ).remove();
361
jQuery('#yop_poll_result_link'+ poll_id + unique_id ).show();
362
}
363
});
327
result_link_loading_image.id = 'yop_poll_result_link_loading_img-'+ poll_id + unique_id;
328
jQuery('#yop_poll_result_link'+ poll_id + unique_id).after( result_link_loading_image );
329
jQuery('#yop_poll_result_link_loading_img-'+ poll_id + unique_id ).css( 'border', 'none' );
330
+ var pollData = {
331
+
332
+ };
333
+ pollData = jQuery.param(pollData) + "&" + jQuery('#yop-poll-form-'+ poll_id + unique_id ).serialize();
334
jQuery.ajax({
335
type: 'POST',
336
url: yop_poll_public_config_general.ajax.url,
337
+ data: 'action='+yop_poll_public_config_general.ajax.view_results_action+'&poll_id=' + poll_id + '&unique_id=' + unique_id + '&location=' + poll_location + '&tr_id=' + jQuery('#yop-poll-tr-id-' + poll_id + unique_id ).val()+pollData,
338
cache: false,
339
error: function() {
340
alert('An error has occured!');
361
jQuery( '#yop-poll-container-success-'+ poll_id + unique_id ).html('');
362
}
363
}
364
+ jQuery('#yop_poll_result_link_loading_img-'+ poll_id + unique_id ).remove(); licence
365
jQuery('#yop_poll_result_link'+ poll_id + unique_id ).show();
366
}
367
});
readme.txt CHANGED
@@ -3,57 +3,57 @@ Contributors: yourownprogrammer
3
Donate Link: http://www.yop-poll.com/thankyou/don.php
4
Tags: poll, polls, vote, voting, survey, polling, yop poll, yop
5
Requires at least: 3.3
6
- Tested up to: 3.9.1
7
Stable tag: trunk
8
License: GPLv2 or later
9
License URI: http://www.gnu.org/licenses/gpl-2.0.htm
10
11
- Use a full option polling functionality to get the answers you need.
12
13
YOP Poll is the perfect, easy to use poll plugin for your WP site.
14
15
== Description ==
16
17
- YOP Poll plugin allows you to easily integrate a survey in your blog post/page and to manage the polls from within your WordPress dashboard but if offers so much more than other similar products. Simply put, it doesn't lose sight of your needs and ensures that no detail is left unaccounted for.
18
19
- To name just a few improvements, you can create polls to include both single or multiple answers, work with a wide variety of options and settings to decide how you wish to sort your poll information, how to manage the results, what details to display and what to keep private, whether you want to view the total votes or the total voters, to set vote permissions or block voters etc.
20
21
Scheduling your polls is no longer a problem. YOP Poll can simultaneously run multiple surveys (no limit included) or you can schedule your polls to start one after another. Also, keeping track of your polls is easy, you have various sorting functions and you can access older versions at any time.
22
23
Designed to intuitive and easy to use, this plugin allows shortcodes and includes a widget functionality that fits perfectly with your WordPress website. For more details on the included features, please refer to the description below.
24
25
- Current poll features:
26
27
- * Create/ Edit / Clone/Delete poll - allows you to create or intervene in your poll at any time, if you consider it necessary.
28
29
- * Poll scheduling: programs each poll to start/end on a certain date. You can simultaneously run multiple polls. This option can be used to schedule your po;;s one after another.
30
31
- * Display polls: you can choose to display one or more polls on your website by simply adding the corresponding poll ID. You can also decide for a random display of your active polls.
32
33
- * View all polls: lists all your polls that you can sort by number of votes or voters, by question or by date. It also includes a search option.
34
35
- * Poll answers - allows other answers, multiple answers and includes a sorting module by various criteria: in exact order, in alphabetical order, by number of votes, ascending, descending etc.
36
37
- * Poll results - offers a great flexibility when displaying the results: before/after vote, after poll's end date, on a custom date or never. The results can also be displayed by vote numbers, percentages or both. You can choose to include a view results link, view number of votes or number of voters.
38
39
- * Add new custom fields - is a complex option that you can use to ask for additional information from your voters, information that you can then download and use for.
40
41
- * Reset stats - proves useful when you wish to restart a poll.
42
43
- * Vote permissions: - limits the voting accessibility to guests, registered users or both, or blocks user access by cookie, IP and username.
44
45
- * Archive options - allows the users of the website to access former polls statistics. You can choose which polls to display according to their start/end date.
46
47
- * Edit/delete/clone templates - allows you to customize the poll using either the html or the visual modes. You can also customize the result bar.
48
49
- * Display Options - displays answers and results tabulated, vertically or horizontally.
50
51
- * Logs and bans - user logs and bans can be seen in the admin section. You can ban users by email, username and IP and you can set the limitation preferences for all your polls or for just one of them.
52
53
== Installation ==
54
55
- 1. Upload 'plugin-name.php' to the '/wp-content/plugins/' directory,
56
- 2. Activate the plugin through the 'Plugins' menu in WordPress.
57
58
== Frequently Asked Questions ==
59
@@ -61,77 +61,77 @@ This plugin was especially designed for flexibility and it is very easy to use.
61
62
= How can I create a poll? =
63
64
- Go to your YOP Poll menu and select the "Add New" option.
65
- Fill the required information according to the examples we included: name, question, answers (add additional ones if you need), select the start/end date for your poll, and decide on the advanced settings for results, votes, voters, accessibility etc.
66
- Once you decided on all your poll details, click on "Save".
67
- To view your new poll access "All Polls" from your main menu and choose the corresponding entry from the list.
68
69
= How can I link a poll to my webpage? =
70
71
- Find out the ID assigned to poll by accessing "All Polls".
72
- Locate your poll and notice the ID on the left, before the name section.
73
- Copy the following shortcode and paste it in your page: [yop_poll id="ID"]
74
- For instance, if the poll you want to display has the ID=15 the code will be: [yop_poll id="15"].
75
- This is it. Check your page or post now.
76
77
= Do you have some predefined shortcodes that I can use? =
78
79
- Yes.
80
- Current Active Poll ID = -1: [yop_poll id="-1"]
81
- Latest Poll id = -2: [yop_poll id="-2"]
82
- Random Poll id = -3: [yop_poll id="-3"]
83
84
= Can I have more than one poll active? =
85
86
- Yes, you can run multiple polls at the same time or you can schedule them to begin one after another using the "Select start/end date" option.
87
88
= Can I ask for additional information from my voters? =
89
90
- Yes, you can customize your poll to request additional information. Eg. name, email, age, profession. To include this, when you create your poll using the "Add New" form, go to "Custom Text Fields" -> "Add new custom field" and include as many requests as you need.
91
92
= How can I create/modify a template? =
93
94
- Access the "Templates" menu.
95
- If you want to create a new template use the "Add new" option and include the corresponding HTML/visual code.
96
- If you want to modify an existing template, select it from the Templates list and choose "Edit". You will access the HTML/visual code you want to edit.
97
98
= How do I check the results? =
99
100
- Locate the poll you want to evaluate by accessing "All Polls".
101
- Below the name of the poll you have several options.
102
- Use the "Results" link to track the results of the poll,
103
- or access the "Logs" for a more detailed evaluation.
104
105
= What is the difference between Options and Poll Options for each poll? =
106
107
- Options (located under plugin menu) is the way to specifify general settings for all your polls.
108
- If you want to go further and customize each poll, these settings will take precedence over Options settings.
109
110
= How can I edit access to YOP Poll for administrators, editors, authors? =
111
112
- To do this, in your wordpress go to Plugins->Editor.
113
On the right choose Yop Poll as the plugin to be edited.
114
The file you need to edit is yop-poll/inc/admin.php.
115
The file you need to edit is yop-poll/inc/admin.php.
116
Once you open the file, do a search for function current_user_can.
117
- In that function you can find the options you need to edit.
118
119
= How can I see the results after the poll ends? =
120
121
- Edit your poll and in "View Results:" choose "After Poll End Date" and save.
122
123
= How can I add a Poll Archive page on my website? =
124
125
- From your WordPress menu create a new page that contains [yop_poll_archive] and has the permalink http://www.yourwebsite.com/polls/
126
127
= How can I add a hyperlink in the poll question or add a photo as an answer? =
128
129
- To add a link to your question you can use <a href="[your link]" target="_blank">[link text]</a>
130
- To add a photo as an answer you can use <img src=[photo_url] title="[photo_title]" alt="[photo_description]"/>
131
132
= Can I add more than one question to a poll? =
133
134
- You can have only one question per poll. If you want to ask more than one question, you have to create a poll for each one.
135
136
== Screenshots ==
137
@@ -143,6 +143,9 @@ You can have only one question per poll. If you want to ask more than one questi
143
144
== Changelog ==
145
146
= 4.9.1 =
147
* Fixed issue with Template preview not working in IE8
148
* Fixed issue with wpautop filter
@@ -157,12 +160,12 @@ You can have only one question per poll. If you want to ask more than one questi
157
* Various bugs fixes
158
159
= 4.8 =
160
- * Re-added ability to use html tags.
161
* Added new tags: %POLL-SUCCESS-MSG% and %POLL-ERROR-MSG%
162
* Various bug fixes
163
164
= 4.7 =
165
- * Fixed bug with Other answers. Html code is no longer allowed.
166
167
= 4.6 =
168
* Added ability to send email notifications when a vote is recorded
@@ -173,7 +176,7 @@ You can have only one question per poll. If you want to ask more than one questi
173
* Added ability to limit viewing results only for logged in users
174
* Added ability to add custom answers to poll answers
175
* Added new shortcode [yop_poll id="-4"] that displays latest closed poll
176
- * Added an offset for shortcodes. [yop_poll id="-1" offset="0"] displays the first active poll found, [yop_poll id="-1" offset="1"] displays the second one.
177
* Added WPML compatibility
178
* Various bugs fixes
179
@@ -202,81 +205,81 @@ You can have only one question per poll. If you want to ask more than one questi
202
* Fixed js issue causing the widget poll not to work
203
204
= 4.0 =
205
- * Added ability to use custom loading animation.
206
* Added capabilities and roles
207
* Fixed issue with update overwritting settings
208
209
- = 3.9 =
210
* Fixed display issue with IE7 and IE8
211
212
- = 3.8 =
213
* Fixed compatibility issue with Restore jQuery plugin
214
* Added ability to link poll answers
215
216
- = 3.7 =
217
* Fixed issue with Loading text displayed above the polls
218
* Fixed issue with deleting answers from polls
219
220
- = 3.6 =
221
* Fixed issue with missing files
222
223
- = 3.5 =
224
* Added french language pack
225
* Added loading animation when vote button is clicked
226
* Fixed issue with characters encoding
227
228
- = 3.4 =
229
* Fixed issue with menu items in admin area
230
* Fixed issue with language packs
231
232
- = 3.3 =
233
* Added option to auto generate a page when a poll is created
234
* Fixed compatibility issues with IE
235
* Fixed issues with custom fields
236
237
- = 3.2 =
238
* Fixed bug that was causing issues with TinyMCE Editor
239
240
- = 3.1 =
241
* Various bugs fixed
242
243
- = 3.0 =
244
* Added export ability for logs
245
* Added date filter option for logs
246
* Added option to view logs grouped by vote or by answer
247
* Various bugs fixed
248
249
- = 2.0 =
250
* Fixed various bugs with templates
251
252
- = 1.9 =
253
* Fixed various bugs with templates
254
255
- = 1.8 =
256
* Fixed bug with wordpress editor
257
258
- = 1.7 =
259
* Fixed bug that was causing poll not to update it's settings
260
261
- = 1.6 =
262
- * Added ability to change the text for Vote button
263
* Added ability to display the answers for Others field
264
265
- = 1.5 =
266
* Fixed sort_answers_by_votes_asc_callback() bug
267
268
- = 1.4 =
269
* Fixed compatibility issues with other plugins
270
271
- = 1.3 =
272
* Fixed bug that was causing widgets text not to display
273
274
- = 1.2 =
275
* Fixed do_shortcode() with missing argument bug
276
277
- = 1.1 =
278
- * Fixed call_user_func_array() bug
279
280
- == Donations ==
281
282
We've given a lot of thought to make this application one of the best ones available and we continue to invest our time and effort perfecting it. If you want to support our work, please consider making a donation.
3
Donate Link: http://www.yop-poll.com/thankyou/don.php
4
Tags: poll, polls, vote, voting, survey, polling, yop poll, yop
5
Requires at least: 3.3
6
+ Tested up to: 4.0
7
Stable tag: trunk
8
License: GPLv2 or later
9
License URI: http://www.gnu.org/licenses/gpl-2.0.htm
10
11
+ Use a full option polling functionality to get the answers you need.
12
13
YOP Poll is the perfect, easy to use poll plugin for your WP site.
14
15
== Description ==
16
17
+ YOP Poll plugin allows you to easily integrate a survey in your blog post/page and to manage the polls from within your WordPress dashboard but if offers so much more than other similar products. Simply put, it doesn't lose sight of your needs and ensures that no detail is left unaccounted for.
18
19
+ To name just a few improvements, you can create polls to include both single or multiple answers, work with a wide variety of options and settings to decide how you wish to sort your poll information, how to manage the results, what details to display and what to keep private, whether you want to view the total votes or the total voters, to set vote permissions or block voters etc.
20
21
Scheduling your polls is no longer a problem. YOP Poll can simultaneously run multiple surveys (no limit included) or you can schedule your polls to start one after another. Also, keeping track of your polls is easy, you have various sorting functions and you can access older versions at any time.
22
23
Designed to intuitive and easy to use, this plugin allows shortcodes and includes a widget functionality that fits perfectly with your WordPress website. For more details on the included features, please refer to the description below.
24
25
+ Current poll features:
26
27
+ * Create/ Edit / Clone/Delete poll - allows you to create or intervene in your poll at any time, if you consider it necessary.
28
29
+ * Poll scheduling: programs each poll to start/end on a certain date. You can simultaneously run multiple polls. This option can be used to schedule your po;;s one after another.
30
31
+ * Display polls: you can choose to display one or more polls on your website by simply adding the corresponding poll ID. You can also decide for a random display of your active polls.
32
33
+ * View all polls: lists all your polls that you can sort by number of votes or voters, by question or by date. It also includes a search option.
34
35
+ * Poll answers - allows other answers, multiple answers and includes a sorting module by various criteria: in exact order, in alphabetical order, by number of votes, ascending, descending etc.
36
37
+ * Poll results - offers a great flexibility when displaying the results: before/after vote, after poll's end date, on a custom date or never. The results can also be displayed by vote numbers, percentages or both. You can choose to include a view results link, view number of votes or number of voters.
38
39
+ * Add new custom fields - is a complex option that you can use to ask for additional information from your voters, information that you can then download and use for.
40
41
+ * Reset stats - proves useful when you wish to restart a poll.
42
43
+ * Vote permissions: - limits the voting accessibility to guests, registered users or both, or blocks user access by cookie, IP and username.
44
45
+ * Archive options - allows the users of the website to access former polls statistics. You can choose which polls to display according to their start/end date.
46
47
+ * Edit/delete/clone templates - allows you to customize the poll using either the html or the visual modes. You can also customize the result bar.
48
49
+ * Display Options - displays answers and results tabulated, vertically or horizontally.
50
51
+ * Logs and bans - user logs and bans can be seen in the admin section. You can ban users by email, username and IP and you can set the limitation preferences for all your polls or for just one of them.
52
53
== Installation ==
54
55
+ 1. Upload 'plugin-name.php' to the '/wp-content/plugins/' directory
56
+ 2. Activate the plugin through the 'Plugins' menu in WordPress
57
58
== Frequently Asked Questions ==
59
61
62
= How can I create a poll? =
63
64
+ Go to your YOP Poll menu and select the "Add New" option.
65
+ Fill the required information according to the examples we included: name, question, answers (add additional ones if you need), select the start/end date for your poll, and decide on the advanced settings for results, votes, voters, accessibility etc.
66
+ Once you decided on all your poll details, click on "Save".
67
+ To view your new poll access "All Polls" from your main menu and choose the corresponding entry from the list.
68
69
= How can I link a poll to my webpage? =
70
71
+ Find out the ID assigned to poll by accessing "All Polls".
72
+ Locate your poll and notice the ID on the left, before the name section.
73
+ Copy the following shortcode and paste it in your page: [yop_poll id="ID"]
74
+ For instance, if the poll you want to display has the ID=15 the code will be: [yop_poll id="15"].
75
+ This is it. Check your page or post now.
76
77
= Do you have some predefined shortcodes that I can use? =
78
79
+ Yes
80
+ Current Active Poll ID = -1: [yop_poll id="-1"]
81
+ Latest Poll id = -2: [yop_poll id="-2"]
82
+ Random Poll id = -3: [yop_poll id="-3"]
83
84
= Can I have more than one poll active? =
85
86
+ Yes, you can run multiple polls at the same time or you can schedule them to begin one after another using the "Select start/end date" option.
87
88
= Can I ask for additional information from my voters? =
89
90
+ Yes, you can customize your poll to request additional information. Eg. name, email, age, profession. To include this, when you create your poll using the "Add New" form, go to "Custom Text Fields" -> "Add new custom field" and include as many requests as you need.
91
92
= How can I create/modify a template? =
93
94
+ Access the "Templates" menu.
95
+ If you want to create a new template use the "Add new" option and include the corresponding HTML/visual code.
96
+ If you want to modify an existing template, select it from the Templates list and choose "Edit". You will access the HTML/visual code you want to edit.
97
98
= How do I check the results? =
99
100
+ Locate the poll you want to evaluate by accessing "All Polls".
101
+ Below the name of the poll you have several options.
102
+ Use the "Results" link to track the results of the poll,
103
+ or access the "Logs" for a more detailed evaluation.
104
105
= What is the difference between Options and Poll Options for each poll? =
106
107
+ Options (located under plugin menu) is the way to specifify general settings for all your polls.
108
+ If you want to go further and customize each poll, these settings will take precedence over Options settings.
109
110
= How can I edit access to YOP Poll for administrators, editors, authors? =
111
112
+ To do this, in your wordpress go to Plugins->Editor.
113
On the right choose Yop Poll as the plugin to be edited.
114
The file you need to edit is yop-poll/inc/admin.php.
115
The file you need to edit is yop-poll/inc/admin.php.
116
Once you open the file, do a search for function current_user_can.
117
+ In that function you can find the options you need to edit.
118
119
= How can I see the results after the poll ends? =
120
121
+ Edit your poll and in "View Results:" choose "After Poll End Date" and save.
122
123
= How can I add a Poll Archive page on my website? =
124
125
+ From your WordPress menu create a new page that contains [yop_poll_archive] and has the permalink http://www.yourwebsite.com/polls/
126
127
= How can I add a hyperlink in the poll question or add a photo as an answer? =
128
129
+ To add a link to your question you can use <a href="[your link]" target="_blank">[link text]</a>
130
+ To add a photo as an answer you can use <img src=[photo_url] title="[photo_title]" alt="[photo_description]"/>
131
132
= Can I add more than one question to a poll? =
133
134
+ You can have only one question per poll. If you want to ask more than one question, you have to create a poll for each one.
135
136
== Screenshots ==
137
143
144
== Changelog ==
145
146
+ = 4.9.2 =
147
+ * Fixed security issue
148
+
149
= 4.9.1 =
150
* Fixed issue with Template preview not working in IE8
151
* Fixed issue with wpautop filter
160
* Various bugs fixes
161
162
= 4.8 =
163
+ * Re-added ability to use html tags
164
* Added new tags: %POLL-SUCCESS-MSG% and %POLL-ERROR-MSG%
165
* Various bug fixes
166
167
= 4.7 =
168
+ * Fixed bug with Other answers. Html code is no longer allowed
169
170
= 4.6 =
171
* Added ability to send email notifications when a vote is recorded
176
* Added ability to limit viewing results only for logged in users
177
* Added ability to add custom answers to poll answers
178
* Added new shortcode [yop_poll id="-4"] that displays latest closed poll
179
+ * Added an offset for shortcodes. [yop_poll id="-1" offset="0"] displays the first active poll found, [yop_poll id="-1" offset="1"] displays the second one
180
* Added WPML compatibility
181
* Various bugs fixes
182
205
* Fixed js issue causing the widget poll not to work
206
207
= 4.0 =
208
+ * Added ability to use custom loading animation
209
* Added capabilities and roles
210
* Fixed issue with update overwritting settings
211
212
+ = 3.9 =
213
* Fixed display issue with IE7 and IE8
214
215
+ = 3.8 =
216
* Fixed compatibility issue with Restore jQuery plugin
217
* Added ability to link poll answers
218
219
+ = 3.7 =
220
* Fixed issue with Loading text displayed above the polls
221
* Fixed issue with deleting answers from polls
222
223
+ = 3.6 =
224
* Fixed issue with missing files
225
226
+ = 3.5 =
227
* Added french language pack
228
* Added loading animation when vote button is clicked
229
* Fixed issue with characters encoding
230
231
+ = 3.4 =
232
* Fixed issue with menu items in admin area
233
* Fixed issue with language packs
234
235
+ = 3.3 =
236
* Added option to auto generate a page when a poll is created
237
* Fixed compatibility issues with IE
238
* Fixed issues with custom fields
239
240
+ = 3.2 =
241
* Fixed bug that was causing issues with TinyMCE Editor
242
243
+ = 3.1 =
244
* Various bugs fixed
245
246
+ = 3.0 =
247
* Added export ability for logs
248
* Added date filter option for logs
249
* Added option to view logs grouped by vote or by answer
250
* Various bugs fixed
251
252
+ = 2.0 =
253
* Fixed various bugs with templates
254
255
+ = 1.9 =
256
* Fixed various bugs with templates
257
258
+ = 1.8 =
259
* Fixed bug with wordpress editor
260
261
+ = 1.7 =
262
* Fixed bug that was causing poll not to update it's settings
263
264
+ = 1.6 =
265
+ * Added ability to change the text for Vote button
266
* Added ability to display the answers for Others field
267
268
+ = 1.5 =
269
* Fixed sort_answers_by_votes_asc_callback() bug
270
271
+ = 1.4 =
272
* Fixed compatibility issues with other plugins
273
274
+ = 1.3 =
275
* Fixed bug that was causing widgets text not to display
276
277
+ = 1.2 =
278
* Fixed do_shortcode() with missing argument bug
279
280
+ = 1.1 =
281
+ * Fixed call_user_func_array() bug
282
283
+ == Donations ==
284
285
We've given a lot of thought to make this application one of the best ones available and we continue to invest our time and effort perfecting it. If you want to support our work, please consider making a donation.
yop_poll.php CHANGED
@@ -5,11 +5,11 @@
5
* Description: Use a full option polling functionality to get the answers you need. YOP Poll is the perfect, easy to use plugin for your WordPress website.
6
* Author: yourownprogrammer
7
* Author URL: http://www.yop-poll.com/thankyou/
8
- * Version: 4.9.1
9
* Network: false
10
*/
11
define ( 'YOP_POLL_WP_VERSION', '3.3' );
12
- define ( 'YOP_POLL_VERSION', '4.9.1' );
13
define ( 'YOP_POLL_PATH', plugin_dir_path( __FILE__ ) );
14
define ( 'YOP_POLL_URL', plugins_url( '', __FILE__ ) );
15
define ( 'YOP_POLL_PLUGIN_FILE', plugin_basename( __FILE__ ) );
5
* Description: Use a full option polling functionality to get the answers you need. YOP Poll is the perfect, easy to use plugin for your WordPress website.
6
* Author: yourownprogrammer
7
* Author URL: http://www.yop-poll.com/thankyou/
8
+ * Version: 4.9.2
9
* Network: false
10
*/
11
define ( 'YOP_POLL_WP_VERSION', '3.3' );
12
+ define ( 'YOP_POLL_VERSION', '4.9.2' );
13
define ( 'YOP_POLL_PATH', plugin_dir_path( __FILE__ ) );
14
define ( 'YOP_POLL_URL', plugins_url( '', __FILE__ ) );
15
define ( 'YOP_POLL_PLUGIN_FILE', plugin_basename( __FILE__ ) );