Soporte » Plugins y Hacks » Hacks » Modificar función dentro una clase con hooks php

  • Resuelto jbulies

    (@jbulies)


    Intento modificar el comportamiento de un plugin de wordpress, entiendo lo básico de como funcionan los hook y como utilizarlos pero en este caso lo que quiero modificar esta dentro de una clase.

    Les dejo el código completo del archivo que quiero modificar y les identificaré lo que quiero cambiar a ver si alguien me explica la lógica de como hacer esto pues son varias de estas modificaciones las que debo hacer.

    Código completo del archivo que quiero modificar.

    
    /**
     * Listing update form.
     *
     * @package HivePress\Forms
     */
    
    namespace HivePress\Forms;
    
    use HivePress\Helpers as hp;
    
    // Exit if accessed directly.
    defined( 'ABSPATH' ) || exit;
    
    /**
     * Listing update form class.
     *
     * @class Listing_Update
     */
    class Listing_Update extends Model_Form {
    
    	/**
    	 * Class initializer.
    	 *
    	 * @param array $meta Form meta.
    	 */
    	public static function init( $meta = [] ) {
    		$meta = hp\merge_arrays(
    			[
    				'model' => 'listing',
    			],
    			$meta
    		);
    
    		parent::init( $meta );
    	}
    
    	/**
    	 * Class constructor.
    	 *
    	 * @param array $args Form arguments.
    	 */
    	public function __construct( $args = [] ) {
    		$args = hp\merge_arrays(
    			[
    				'message' => esc_html__( 'Changes have been saved.', 'hivepress' ),
    
    				'fields'  => [
    					'images'      => [
    						'_order' => 10,
    					],
    
    					'title'       => [
    						'_order' => 20,
    					],
    
    					'description' => [
    						'html'   => false,
    						'_order' => 200,
    					],
    				],
    
    				'button'  => [
    					'label' => esc_html__( 'Save Changes', 'hivepress' ),
    				],
    			],
    			$args
    		);
    
    		parent::__construct( $args );
    	}
    
    	/**
    	 * Bootstraps form properties.
    	 */
    	protected function boot() {
    
    		// Set action.
    		if ( $this->model->get_id() ) {
    			$this->action = hivepress()->router->get_url(
    				'listing_update_action',
    				[
    					'listing_id' => $this->model->get_id(),
    				]
    			);
    		}
    
    		parent::boot();
    	}
    }
    

    La función que quiero modificar public function __construct( $args = [] )

    Y como quiero que quede.

    
    	public function __construct( $args = [] ) {
    		$args = hp\merge_arrays(
    			[
    				'message' => esc_html__( 'Changes have been saved.', 'hivepress' ),
    
    				'button'  => [
    					'label' => esc_html__( 'Save Changes', 'hivepress' ),
    				],
    			],
    			$args
    		);
    
    		parent::__construct( $args );
    	}
    

    O sea, en concreto estoy solo eliminando esto

    
    				'fields'  => [
    					'images'      => [
    						'_order' => 10,
    					],
    
    					'title'       => [
    						'_order' => 20,
    					],
    
    					'description' => [
    						'html'   => false,
    						'_order' => 200,
    					],
    				],
    

    Ademas de llevar a cabo esta modificación intento entender la lógica de como hacerlo para poder hacer otras modificaciones similares.
    De antemano mil veces gracias a quien pueda ayudar.

Viendo 1 respuesta (de un total de 1)
Viendo 1 respuesta (de un total de 1)
  • Debes estar registrado para responder a este debate.