PluginProbe
wpForo Forum / 1.4.10
wpForo Forum v1.4.10
3.1.6 3.1.5 3.1.4 3.1.2 3.1.1 3.1.0 3.0.9 3.0.8 3.0.7 trunk 1.0.0 1.0.1 1.0.2 1.1.0 1.1.1 1.1.2 1.2.0 1.3.0 1.3.1 1.4.0 1.4.1 1.4.10 1.4.11 1.4.12 1.4.13 All 138 releases
wpforo / wpf-includes / integration / legal.php

legal.php in wpForo Forum 1.4.10, at wpf-includes/integration/legal.php

215 lines 10.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 function wpforo_legal_checkbox_forum_privacy(){
4
5 $only_forum = apply_filters( 'wpforo_legal_checkbox_forum_privacy_only_for_forum', true );
6 $only_new_guests = apply_filters( 'wpforo_legal_checkbox_forum_privacy_only_for_new_guests', true );
7
8 if( $only_forum && !is_wpforo_page() || is_user_logged_in() ) return false;
9 $guest = WPF()->member->get_guest_cookies();
10 if( $only_new_guests && wpfval($guest, 'email') ) return false;
11
12 $set = WPF()->tools_legal;
13
14 if( wpfval($set, 'checkbox_forum_privacy') && wpfval($set, 'forum_privacy_text') ){
15 $forum_home = preg_replace('|\?.+$|', '', wpforo_home_url() );
16 $str_privacy = wpforo_phrase( 'forum privacy policy', false, 'native' );
17 $str_privacy_label = wpforo_phrase('I have read and agree to the %s.', false);
18 $str_privacy_link = ' <span id="wpf-open-privacy" class="wpflink" title="' . esc_attr(wpforo_phrase('Click to open forum privacy policy below', false)) . '">' . $str_privacy . '</span>';
19 $str_privacy = sprintf( $str_privacy_label, $str_privacy_link );
20 $str_privacy_text = wpautop(stripslashes($set['forum_privacy_text']));
21 $str_privacy_text = apply_filters('wpforo_legal_forum_privacy_text', $str_privacy_text);
22 $url = parse_url( get_bloginfo('url') );
23 $find = array('[forum-name]', '[forum-url]');
24 $domain = (wpfval($url, 'host')) ? $url['host'] : $_SERVER['HTTP_HOST'];
25 $replace = array( WPF()->general_options['title'] , $domain);
26 $str_privacy_text = str_replace($find, $replace, $str_privacy_text);
27 ?>
28 <label class="wpforo-legal-checkbox wpflegal-privacy">
29 <input id="wpflegal_privacy" name="legal[gdpr]" value="1" required type="checkbox"> &nbsp;
30 <span><?php echo wp_unslash($str_privacy); ?></span>
31 </label>
32 <div class="wpforo-legal-privacy wpforo-text" style="display: none;">
33 <?php echo $str_privacy_text; ?>
34 <div class="wpflegal-privacy-buttons">
35 <div id="wpflegal-privacy-yes" class="wpflegal-privacy-button"><?php wpforo_phrase('I agree'); ?></div>
36 <a href="<?php echo esc_url($forum_home); ?>" id="wpflegal-privacy-not" class="wpflegal-privacy-button"><?php wpforo_phrase('I do not agree. Take me away from here.'); ?></a>
37 </div>
38 </div>
39 <?php
40 }
41 }
42
43 add_action( 'register_form', 'wpforo_legal_checkbox_forum_privacy', 20 );
44 add_action( 'wpforo_editor_post_submit_before', 'wpforo_legal_checkbox_forum_privacy', 20 );
45 add_action( 'wpforo_editor_topic_submit_before', 'wpforo_legal_checkbox_forum_privacy', 20 );
46
47 function wpforo_legal_checkbox_forum_rules(){
48
49 $only_forum = apply_filters( 'wpforo_legal_checkbox_rules_only_for_forum', true );
50 $only_new_guests = apply_filters( 'wpforo_legal_checkbox_rules_only_for_new_guests', true );
51 if( $only_forum && !is_wpforo_page() || is_user_logged_in() ) return false;
52 $guest = WPF()->member->get_guest_cookies();
53 if( $only_new_guests && wpfval($guest, 'email') ) return false;
54
55 $set = WPF()->tools_legal;
56
57 if( wpfval($set, 'rules_checkbox') && wpfval($set, 'rules_text') ){
58 $forum_home = preg_replace('|\?.+$|', '', wpforo_home_url() );
59 $str_rules = wpforo_phrase( 'forum rules', false, 'native' );
60 $str_rules_text = wpforo_phrase('I have read and agree to abide by the %s.', false);
61 $str_rules_link = ' <span id="wpf-open-rules" class="wpflink" title="' . esc_attr(wpforo_phrase('Click to open forum rules below', false)) . '">' . $str_rules . '</span>';
62 $str_rules = sprintf( $str_rules_text, $str_rules_link );
63 $str_rules_text = apply_filters('wpforo_legal_forum_rules_text', $set['rules_text']);
64 ?>
65 <label class="wpforo-legal-checkbox wpflegal-rules">
66 <input id="wpflegal_rules" name="legal[rules]" value="1" required type="checkbox"> &nbsp;
67 <span><?php echo $str_rules; ?></span>
68 </label>
69 <div class="wpforo-legal-rules wpforo-text" style="display: none;">
70 <?php echo wp_unslash($str_rules_text); ?>
71 <div class="wpflegal-rules-buttons">
72 <div id="wpflegal-rules-yes" class="wpflegal-rules-button"><?php wpforo_phrase('I agree to these rules'); ?></div>
73 <a href="<?php echo esc_url($forum_home); ?>" id="wpflegal-rules-not" class="wpflegal-rules-button"><?php wpforo_phrase('I do not agree to these rules. Take me away from here.'); ?></a>
74 </div>
75 </div>
76 <?php
77 }
78 }
79
80 add_action( 'register_form', 'wpforo_legal_checkbox_forum_rules', 20 );
81 add_action( 'wpforo_editor_post_submit_before', 'wpforo_legal_checkbox_forum_rules', 20 );
82 add_action( 'wpforo_editor_topic_submit_before', 'wpforo_legal_checkbox_forum_rules', 20 );
83
84 function wpforo_legal_checkbox_terms_privacy(){
85
86 $only_forum = apply_filters( 'wpforo_legal_checkbox_only_for_forum', true );
87 $only_new_guests = apply_filters( 'wpforo_legal_checkbox_only_for_new_guests', true );
88 if( $only_forum && !is_wpforo_page() || is_user_logged_in() ) return false;
89 $guest = WPF()->member->get_guest_cookies();
90 if( $only_new_guests && wpfval($guest, 'email') ) return false;
91
92 $set = WPF()->tools_legal;
93
94 $str_and = '';
95 $str_terms = '';
96 $str_privacy = '';
97 $str_site_name = get_bloginfo( 'name' );
98 $str_site_name = ( $str_site_name ) ? $str_site_name : wpforo_phrase('the website', false);
99 $str_terms_privacy = wpforo_phrase('I have read and agree to the', false);
100 $str_if_no_pages = sprintf( wpforo_phrase('I have read and agree to %s privacy policy.', false), $str_site_name);
101
102 if(wpfval($set, 'page_terms')){
103 $term_url = $set['page_terms'];
104 $term_pageid = url_to_postid( $term_url );
105 $str_terms = wpforo_phrase('Terms', false);
106 $term_title = ($term_pageid) ? get_the_title( $term_pageid ) : $str_terms;
107 $str_terms = ' <a href="' . esc_url( $term_url ) . '" title="' . esc_attr( $term_title ) . '">' . $str_terms . ' </a>';
108 }
109
110 if(wpfval($set, 'page_privacy')){
111 $privacy_url = $set['page_privacy'];
112 $privacy_pageid = url_to_postid( $privacy_url );
113 $str_privacy = wpforo_phrase('Privacy Policy', false);
114 $privacy_title = ($privacy_pageid) ? get_the_title( $privacy_pageid ) : $str_privacy;
115 $str_privacy = ' <a href="' . esc_url( $privacy_url ) . '" title="' . esc_attr( $privacy_title ) . '">' . $str_privacy . ' </a>';
116 }
117
118 if( $str_terms && $str_privacy ){
119 $str_and = wpforo_phrase('and', false, 'lower');
120 }
121
122 if( $str_terms || $str_privacy || (wpfval($set, 'checkbox_forum_privacy') && wpfval($set, 'forum_privacy_text')) ){
123 $terms_privacy = $str_terms_privacy . ' ' . $str_terms . ' ' . $str_and . ' ' . $str_privacy;
124 $terms_privacy = apply_filters('wpforo_legal_checkbox_label_terms_and_privacy', $terms_privacy);
125 if( ( $str_terms || $str_privacy ) && $terms_privacy ){
126 ?>
127 <label class="wpforo-legal-checkbox wpflegal-terms-privacy">
128 <input name="legal[terms_privacy]" value="1" required type="checkbox"> &nbsp;
129 <span><?php echo $terms_privacy; ?></span>
130 </label>
131 <?php
132 }
133 }
134 elseif( wpfval($set, 'checkbox_terms_privacy') ){
135 ?>
136 <label class="wpforo-legal-checkbox wpflegal-terms-privacy">
137 <input name="legal[terms_privacy]" value="1" required type="checkbox"> &nbsp;
138 <span><?php echo $str_if_no_pages; ?></span>
139 </label>
140 <?php
141 }
142 }
143
144 add_action( 'register_form', 'wpforo_legal_checkbox_terms_privacy', 20 );
145 add_action( 'wpforo_editor_post_submit_before', 'wpforo_legal_checkbox_terms_privacy', 20 );
146 add_action( 'wpforo_editor_topic_submit_before', 'wpforo_legal_checkbox_terms_privacy', 20 );
147
148 function wpforo_legal_checkbox_email_password(){
149
150 $only_forum = apply_filters( 'wpforo_legal_checkbox_email_password', true );
151 if( $only_forum && !is_wpforo_page() ) return false;
152 $set = WPF()->tools_legal;
153
154 if( wpforo_feature('user-register-email-confirm') && wpfval($set, 'checkbox_email_password') ){
155 $str_email_password = wpforo_phrase('I agree to receive an email confirmation with a link to set a password.', false);
156 $str_email_password = apply_filters('wpforo_legal_checkbox_confirm_email_password', $str_email_password);
157 ?>
158 <label class="wpforo-legal-checkbox wpflegal-email">
159 <input name="legal[email]" value="1" required type="checkbox"> &nbsp;
160 <span><?php echo $str_email_password; ?></span>
161 </label>
162 <?php
163 }
164 }
165
166 add_action( 'register_form', 'wpforo_legal_checkbox_email_password', 20 );
167
168 function wpforo_page_privacy_policy( $template ){
169 if( $template !== 'privacy' ) return false;
170 $set = WPF()->tools_legal;
171 if( wpfval($set, 'checkbox_forum_privacy') ){
172 $str_privacy_text = wpautop(stripslashes($set['forum_privacy_text']));
173 $str_privacy_text = apply_filters('wpforo_legal_forum_privacy_text', $str_privacy_text);
174 $url = parse_url( get_bloginfo('url') );
175 $find = array('[forum-name]', '[forum-url]');
176 $domain = (wpfval($url, 'host')) ? $url['host'] : $_SERVER['HTTP_HOST'];
177 $replace = array( WPF()->general_options['title'] , $domain);
178 $str_privacy_text = str_replace($find, $replace, $str_privacy_text);
179 $str_privacy_text = apply_filters('wpforo_legal_forum_privacy_output', $str_privacy_text);
180 ?>
181 <div class="wpforo-page wpforo-page-privacy wpforo-text">
182 <?php echo $str_privacy_text; ?>
183 </div>
184 <?php
185 }
186 }
187
188 add_action( 'wpforo_page', 'wpforo_page_privacy_policy', 20 );
189
190 function wpforo_page_forum_rules( $template ){
191 if( $template !== 'rules' ) return false;
192 $set = WPF()->tools_legal;
193 if( wpfval($set, 'rules_checkbox') ){
194 $str_rules_text = wpautop(stripslashes($set['rules_text']));
195 $str_rules_text = apply_filters('wpforo_legal_forum_rules_text', $str_rules_text);
196 ?>
197 <div class="wpforo-page wpforo-page-rules wpforo-text">
198 <?php echo $str_rules_text; ?>
199 </div>
200 <?php
201 }
202 }
203
204 add_action( 'wpforo_page', 'wpforo_page_forum_rules', 11 );
205
206 function wpforo_contact_forum_admin(){
207 $set = WPF()->tools_legal;
208 if( wpfval($set, 'contact_page_url') ){
209 $url = $set['contact_page_url'];
210 $html = '<a href="'. esc_url($url).'" title="'. wpforo_phrase('Contact Us', false) . '" class="wpf-contact-admin">' . wpforo_phrase('Contact the forum administrator', false) . '</a>';
211 echo apply_filters('wpforo_legal_contact_forum_admin_button', $html);
212 }
213 }
214
215 add_action( 'wpforo_profile_account_bottom', 'wpforo_contact_forum_admin', 10 );