Helix_Website/wp-content/plugins/wpforo/wpf-includes/integration/legal.php

218 lines
11 KiB
PHP

<?php
function wpforo_legal_checkbox_forum_privacy(){
$only_forum = apply_filters( 'wpforo_legal_checkbox_forum_privacy_only_for_forum', true );
$only_new_guests = apply_filters( 'wpforo_legal_checkbox_forum_privacy_only_for_new_guests', true );
if( $only_forum && !is_wpforo_page() || is_user_logged_in() ) return false;
$guest = WPF()->member->get_guest_cookies();
if( $only_new_guests && wpfval($guest, 'email') ) return false;
$set = WPF()->tools_legal;
if( wpfval($set, 'checkbox_forum_privacy') && wpfval($set, 'forum_privacy_text') ){
$forum_home = preg_replace('|\?.+$|', '', wpforo_home_url() );
$str_privacy = wpforo_phrase( 'forum privacy policy', false, 'native' );
$str_privacy_label = wpforo_phrase('I have read and agree to the %s.', false);
$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>';
$str_privacy = sprintf( $str_privacy_label, $str_privacy_link );
$str_privacy_text = wpautop(stripslashes($set['forum_privacy_text']));
$str_privacy_text = apply_filters('wpforo_legal_forum_privacy_text', $str_privacy_text);
$url = parse_url( get_bloginfo('url') );
$find = array('[forum-name]', '[forum-url]');
$domain = (wpfval($url, 'host')) ? $url['host'] : $_SERVER['HTTP_HOST'];
$replace = array( WPF()->general_options['title'] , $domain);
$str_privacy_text = str_replace($find, $replace, $str_privacy_text);
?>
<label class="wpforo-legal-checkbox wpflegal-privacy">
<input id="wpflegal_privacy" name="legal[gdpr]" value="1" required="required" type="checkbox"> &nbsp;
<span><?php echo wp_unslash($str_privacy); ?></span>
</label>
<div class="wpforo-legal-privacy wpforo-text" style="display: none;">
<?php echo $str_privacy_text; ?>
<div class="wpflegal-privacy-buttons">
<div id="wpflegal-privacy-yes" class="wpflegal-privacy-button"><?php wpforo_phrase('I agree'); ?></div>
<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>
</div>
</div>
<?php
}
}
add_action( 'register_form', 'wpforo_legal_checkbox_forum_privacy', 20 );
add_action( 'wpforo_editor_post_submit_before', 'wpforo_legal_checkbox_forum_privacy', 20 );
add_action( 'wpforo_portable_editor_post_submit_before', 'wpforo_legal_checkbox_forum_privacy', 20 );
add_action( 'wpforo_editor_topic_submit_before', 'wpforo_legal_checkbox_forum_privacy', 20 );
function wpforo_legal_checkbox_forum_rules(){
$only_forum = apply_filters( 'wpforo_legal_checkbox_rules_only_for_forum', true );
$only_new_guests = apply_filters( 'wpforo_legal_checkbox_rules_only_for_new_guests', true );
if( $only_forum && !is_wpforo_page() || is_user_logged_in() ) return false;
$guest = WPF()->member->get_guest_cookies();
if( $only_new_guests && wpfval($guest, 'email') ) return false;
$set = WPF()->tools_legal;
if( wpfval($set, 'rules_checkbox') && wpfval($set, 'rules_text') ){
$forum_home = preg_replace('|\?.+$|', '', wpforo_home_url() );
$str_rules = wpforo_phrase( 'forum rules', false, 'native' );
$str_rules_text = wpforo_phrase('I have read and agree to abide by the %s.', false);
$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>';
$str_rules = sprintf( $str_rules_text, $str_rules_link );
$str_rules_text = apply_filters('wpforo_legal_forum_rules_text', $set['rules_text']);
?>
<label class="wpforo-legal-checkbox wpflegal-rules">
<input id="wpflegal_rules" name="legal[rules]" value="1" required="required" type="checkbox"> &nbsp;
<span><?php echo $str_rules; ?></span>
</label>
<div class="wpforo-legal-rules wpforo-text" style="display: none;">
<?php echo wp_unslash($str_rules_text); ?>
<div class="wpflegal-rules-buttons">
<div id="wpflegal-rules-yes" class="wpflegal-rules-button"><?php wpforo_phrase('I agree to these rules'); ?></div>
<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>
</div>
</div>
<?php
}
}
add_action( 'register_form', 'wpforo_legal_checkbox_forum_rules', 20 );
add_action( 'wpforo_editor_post_submit_before', 'wpforo_legal_checkbox_forum_rules', 20 );
add_action( 'wpforo_portable_editor_post_submit_before', 'wpforo_legal_checkbox_forum_rules', 20 );
add_action( 'wpforo_editor_topic_submit_before', 'wpforo_legal_checkbox_forum_rules', 20 );
function wpforo_legal_checkbox_terms_privacy(){
$only_forum = apply_filters( 'wpforo_legal_checkbox_only_for_forum', true );
$only_new_guests = apply_filters( 'wpforo_legal_checkbox_only_for_new_guests', true );
if( $only_forum && !is_wpforo_page() || is_user_logged_in() ) return false;
$guest = WPF()->member->get_guest_cookies();
if( $only_new_guests && wpfval($guest, 'email') ) return false;
$set = WPF()->tools_legal;
$str_and = '';
$str_terms = '';
$str_privacy = '';
$str_site_name = get_bloginfo( 'name' );
$str_site_name = ( $str_site_name ) ? $str_site_name : wpforo_phrase('the website', false);
$str_terms_privacy = wpforo_phrase('I have read and agree to the', false);
$str_if_no_pages = sprintf( wpforo_phrase('I have read and agree to %s privacy policy.', false), $str_site_name);
if(wpfval($set, 'page_terms')){
$term_url = $set['page_terms'];
$term_pageid = wpforo_wp_url_to_postid( $term_url );
$str_terms = wpforo_phrase('Terms', false);
$term_title = ($term_pageid) ? get_the_title( $term_pageid ) : $str_terms;
$str_terms = ' <a href="' . esc_url( $term_url ) . '" title="' . esc_attr( $term_title ) . '">' . $str_terms . ' </a>';
}
if(wpfval($set, 'page_privacy')){
$privacy_url = $set['page_privacy'];
$privacy_pageid = wpforo_wp_url_to_postid( $privacy_url );
$str_privacy = wpforo_phrase('Privacy Policy', false);
$privacy_title = ($privacy_pageid) ? get_the_title( $privacy_pageid ) : $str_privacy;
$str_privacy = ' <a href="' . esc_url( $privacy_url ) . '" title="' . esc_attr( $privacy_title ) . '">' . $str_privacy . ' </a>';
}
if( $str_terms && $str_privacy ){
$str_and = wpforo_phrase('and', false, 'lower');
}
if( $str_terms || $str_privacy || (wpfval($set, 'checkbox_forum_privacy') && wpfval($set, 'forum_privacy_text')) ){
$terms_privacy = $str_terms_privacy . ' ' . $str_terms . ' ' . $str_and . ' ' . $str_privacy;
$terms_privacy = apply_filters('wpforo_legal_checkbox_label_terms_and_privacy', $terms_privacy);
if( ( $str_terms || $str_privacy ) && $terms_privacy ){
?>
<label class="wpforo-legal-checkbox wpflegal-terms-privacy">
<input name="legal[terms_privacy]" value="1" required="required" type="checkbox"> &nbsp;
<span><?php echo $terms_privacy; ?></span>
</label>
<?php
}
}
elseif( wpfval($set, 'checkbox_terms_privacy') ){
?>
<label class="wpforo-legal-checkbox wpflegal-terms-privacy">
<input name="legal[terms_privacy]" value="1" required="required" type="checkbox"> &nbsp;
<span><?php echo $str_if_no_pages; ?></span>
</label>
<?php
}
}
add_action( 'register_form', 'wpforo_legal_checkbox_terms_privacy', 20 );
add_action( 'wpforo_editor_post_submit_before', 'wpforo_legal_checkbox_terms_privacy', 20 );
add_action( 'wpforo_portable_editor_post_submit_before', 'wpforo_legal_checkbox_terms_privacy', 20 );
add_action( 'wpforo_editor_topic_submit_before', 'wpforo_legal_checkbox_terms_privacy', 20 );
function wpforo_legal_checkbox_email_password(){
$only_forum = apply_filters( 'wpforo_legal_checkbox_email_password', true );
if( $only_forum && !is_wpforo_page() ) return false;
$set = WPF()->tools_legal;
if( wpforo_feature('user-register-email-confirm') && wpfval($set, 'checkbox_email_password') ){
$str_email_password = wpforo_phrase('I agree to receive an email confirmation with a link to set a password.', false);
$str_email_password = apply_filters('wpforo_legal_checkbox_confirm_email_password', $str_email_password);
?>
<label class="wpforo-legal-checkbox wpflegal-email">
<input name="legal[email]" value="1" required="required" type="checkbox"> &nbsp;
<span><?php echo $str_email_password; ?></span>
</label>
<?php
}
}
add_action( 'register_form', 'wpforo_legal_checkbox_email_password', 20 );
function wpforo_page_privacy_policy( $template ){
if( $template !== 'privacy' ) return false;
$set = WPF()->tools_legal;
if( wpfval($set, 'checkbox_forum_privacy') ){
$str_privacy_text = wpautop(stripslashes($set['forum_privacy_text']));
$str_privacy_text = apply_filters('wpforo_legal_forum_privacy_text', $str_privacy_text);
$url = parse_url( get_bloginfo('url') );
$find = array('[forum-name]', '[forum-url]');
$domain = (wpfval($url, 'host')) ? $url['host'] : $_SERVER['HTTP_HOST'];
$replace = array( WPF()->general_options['title'] , $domain);
$str_privacy_text = str_replace($find, $replace, $str_privacy_text);
$str_privacy_text = apply_filters('wpforo_legal_forum_privacy_output', $str_privacy_text);
?>
<div class="wpforo-page wpforo-page-privacy wpforo-text">
<?php echo $str_privacy_text; ?>
</div>
<?php
}
}
add_action( 'wpforo_page', 'wpforo_page_privacy_policy', 20 );
function wpforo_page_forum_rules( $template ){
if( $template !== 'rules' ) return false;
$set = WPF()->tools_legal;
if( wpfval($set, 'rules_checkbox') ){
$str_rules_text = wpautop(stripslashes($set['rules_text']));
$str_rules_text = apply_filters('wpforo_legal_forum_rules_text', $str_rules_text);
?>
<div class="wpforo-page wpforo-page-rules wpforo-text">
<?php echo $str_rules_text; ?>
</div>
<?php
}
}
add_action( 'wpforo_page', 'wpforo_page_forum_rules', 11 );
function wpforo_contact_forum_admin(){
$set = WPF()->tools_legal;
if( wpfval($set, 'contact_page_url') ){
$url = $set['contact_page_url'];
$html = '<a href="'. esc_url($url).'" title="'. wpforo_phrase('Contact Us', false) . '" class="wpf-contact-admin">' . wpforo_phrase('Contact the forum administrator', false) . '</a>';
echo apply_filters('wpforo_legal_contact_forum_admin_button', $html);
}
}
add_action( 'wpforo_profile_account_bottom', 'wpforo_contact_forum_admin', 10 );