Pregunta

In a plugin I have this code..

            $links = apply_filters( 'jigoshop_widget_logout_user_links' , array(
            __( 'My Account', 'jigoshop' )     => get_permalink( jigoshop_get_page_id('myaccount') ),
            __( 'Change Password', 'jigoshop' )=> get_permalink( jigoshop_get_page_id('change_password') ),
            __( 'Logout', 'jigoshop' )         => wp_logout_url( home_url() ),
        ));

Is it possible to use the add_filter function to change the values of this array?

Im currently trying to learn filters and am trying to use this as a simply example.

Im not sure how you pass the new information to this array , if thats even possible.

Suppose I wanted to change the value of

__( 'My Account', 'jigoshop' ) => get_permalink( jigoshop_get_page_id('myaccount') )

to

__( 'Logout', 'jigoshop' ) =>'test'

So far I have this..

function change_links() {
            $links = apply_filters( 'jigoshop_widget_logout_user_links' , array(
            __( 'My Account', 'jigoshop' )     => get_permalink( jigoshop_get_page_id('myaccount') ),
            __( 'Change Password', 'jigoshop' )=> get_permalink( jigoshop_get_page_id('change_password') ),
            __( 'Logout', 'jigoshop' )         =>'test',
        ));
    return $links;
}

 add_filter( 'jigoshop_widget_logout_user_links', 'change_links' );

Thank you

¿Fue útil?

Solución

Change the way of adding the filter by passing parameters, also you don't need to do another apply_filter:

function change_links($arr) {
    $arr = array(
            __( 'My Account', 'jigoshop' )     => get_permalink( jigoshop_get_page_id('myaccount') ),
            __( 'Change Password', 'jigoshop' )=> get_permalink( jigoshop_get_page_id('change_password') ),
            __( 'Logout', 'jigoshop' )         =>'test',
        );
    return $arr;
}

 add_filter( 'jigoshop_widget_logout_user_links', 'change_links', 10, 1 );
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top