, 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 * * @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' ); }