| 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"> |
| 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"> |
| 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"> |
| 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"> |
| 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"> |
| 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 ); |