WS_OK_7.4.33
<?php
/**
* Admin boot
*
* @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
* @copyright Webcraftic 25.05.2017
* @version 1.0
*/
// Exit if accessed directly
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* Массово проходится по комментарием в базе данных и отключает, какждый индивидуально.
*/
function wbcr_cmp_enter_permanent_mode() {
global $wpdb;
if ( ! WCM_Plugin::app()->getPopulateOption( 'disable_comments_permanent' ) ) {
return;
}
$types = wbcr_cmp_get_disabled_post_types();
if ( empty( $types ) ) {
return;
}
if ( WCM_Plugin::app()->isNetworkActive() ) {
// NOTE: this can be slow on large networks!
$blogs = $wpdb->get_col( $wpdb->prepare( "SELECT blog_id
FROM $wpdb->blogs
WHERE site_id = %d
AND public = '1'
AND archived = '0'
AND deleted = '0'", $wpdb->siteid ) );
foreach ( $blogs as $id ) {
switch_to_blog( $id );
wbcr_close_comments_in_db( $types );
restore_current_blog();
}
} else {
wbcr_close_comments_in_db( $types );
}
}
add_action( 'wbcr/factory/pages/impressive/after_form_save', 'wbcr_cmp_enter_permanent_mode' );
add_action( 'wbcr_clearfy_configurated_quick_mode', 'wbcr_cmp_enter_permanent_mode' );
/**
* Закрывает комментарии в базе данных
*
* @param $types
*/
function wbcr_close_comments_in_db( $types ) {
global $wpdb;
$bits = implode( ', ', array_pad( [], count( $types ), '%s' ) );
$wpdb->query( $wpdb->prepare( "UPDATE `$wpdb->posts`
SET `comment_status` = 'closed', ping_status = 'closed'
WHERE `post_type`
IN ( $bits )", $types ) );
}
if ( ! defined( 'LOADING_COMMENTS_PLUS_AS_ADDON' ) ) {
function wbcr_cmp_set_plugin_meta( $links, $file ) {
if ( $file == WCM_PLUGIN_BASE ) {
$url = 'https://clearfy.pro';
if ( get_locale() == 'ru_RU' ) {
$url = 'https://ru.clearfy.pro';
}
$url .= '?utm_source=wordpress.org&utm_campaign=' . WCM_Plugin::app()->getPluginName();
}
return $links;
}
add_filter( 'plugin_row_meta', 'wbcr_cmp_set_plugin_meta', 10, 2 );
/**
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
*
* @param string $page_url
* @param string $plugin_name
*
* @return string
*/
function wbcr_cmp_rating_widget_url( $page_url, $plugin_name ) {
if ( ! defined( 'LOADING_COMMENTS_PLUS_AS_ADDON' ) && ( $plugin_name == WCM_Plugin::app()->getPluginName() ) ) {
return 'https://wordpress.org/support/plugin/comments-plus/reviews/#new-post';
}
return $page_url;
}
add_filter( 'wbcr_factory_pages_480_imppage_rating_widget_url', 'wbcr_cmp_rating_widget_url', 10, 2 );
/**
* Удаляем лишние виджеты из правого сайдбара в интерфейсе плагина
*
* - Виджет с премиум рекламой
* - Виджет с рейтингом
* - Виджет с маркерами информации
*/
add_filter( 'wbcr/factory/pages/impressive/widgets', function ( $widgets, $position, $plugin ) {
if ( WCM_Plugin::app()->getPluginName() == $plugin->getPluginName() && 'right' == $position ) {
unset( $widgets['business_suggetion'] );
unset( $widgets['rating_widget'] );
unset( $widgets['info_widget'] );
}
return $widgets;
}, 20, 3 );
} else {
function wbcr_cmp_group_options( $options ) {
$options[] = [
'name' => 'disable_comments',
'title' => __( 'Disable comments on the entire site', 'comments-plus' ),
'tags' => [ 'disable_all_comments' ],
'values' => [ 'disable_all_comments' => 'disable_comments' ]
];
$options[] = [
'name' => 'disable_comments_for_post_types',
'title' => __( 'Select post types', 'comments-plus' ),
'tags' => []
];
$options[] = [
'name' => 'disable_comments_extra_post_types',
'title' => __( 'Custom Post Types (comma-separated slugs)', 'comments-plus' ),
'tags' => []
];
$options[] = [
'name' => 'disable_comments_permanent',
'title' => __( 'Use persistent mode', 'comments-plus' ),
'tags' => []
];
$options[] = [
'name' => 'comment_text_convert_links_pseudo',
'title' => __( 'Replace external links in comments on the JavaScript code', 'comments-plus' ),
'tags' => [ 'recommended', 'seo_optimize' ]
];
$options[] = [
'name' => 'pseudo_comment_author_link',
'title' => __( 'Replace external links from comment authors on the JavaScript code', 'comments-plus' ),
'tags' => [ 'recommended', 'seo_optimize' ]
];
$options[] = [
'name' => 'remove_url_from_comment_form',
'title' => __( 'Remove field "site" in comment form', 'comments-plus' ),
'tags' => []
];
return $options;
}
add_filter( "wbcr_clearfy_group_options", 'wbcr_cmp_group_options' );
function wbcr_cmp_allow_quick_mods( $mods ) {
$mods['disable_all_comments'] = [
'title' => __( 'One click disable all comments', 'comments-plus' ),
'icon' => 'dashicons-testimonial'
];
return $mods;
}
add_filter( "wbcr_clearfy_allow_quick_mods", 'wbcr_cmp_allow_quick_mods' );
}