WP Woo - custom endpoint is deleted after saving Woo settings

烂漫一生 提交于 2019-12-13 17:46:12

问题


I have added an endpoint to my WP plugin (to manage extra information in my-account section in woocommerce -> my points) - my-account/moje-punkty

I did that all based on bunch of tutorials, the endpoint starts on plugin activation and is followed by a rewrite flush.

My colleague reported to me that this suddenly stops working (returning 404 error) when an user is added to the DB, although I added plenty of users while testing it and never encountered this problem.

However today I noticed that after saving Woo settings, my custom endpoint is also deleted.

Does anyone know how I can make sure that the custom endpoint stays always as long as the pluing in active?

The code reference:

function __construct()
{
    register_activation_hook( __FILE__, array( $this, 'foc_points_moje_punkty_endpoints' ) );
    register_deactivation_hook( __FILE__, array( $this, 'foc_points_flush_rewrite_rules' ) );
}

add_filter( 'query_vars', array ( $this, 'my_custom_query_vars'), 0 );
function my_custom_query_vars( $vars ) {
    $vars[] = 'moje-punkty';

    return $vars;
}

add_filter ( 'woocommerce_account_menu_items', array ( $this, 'foc_front_account_menu_points_info') );
function foc_front_account_menu_points_info( $items ) {
    echo '<div class="points_dropdown_area">' . esc_html__( 'Your points', 'foc-lang' ) . ': <em>' . $punkty_meta_value . '</em></div>';
    $items['moje-punkty'] = esc_html__( 'Points history', 'foc-lang' );

    return $items;
}


add_action( 'woocommerce_account_moje-punkty_endpoint', array ( $this, 'foc_front_punkty_endpoint_content' ) );
function foc_front_punkty_endpoint_content() {
    // my code
}

/**
 * Flush rewrite rules on plugin activation.
 */
function foc_points_moje_punkty_endpoints() {
    add_rewrite_endpoint( 'moje-punkty', EP_ROOT | EP_PAGES );
    $this->foc_points_flush_rewrite_rules();
}

/**
 * Flush rewrite rules on plugin de-activation.
 */
function foc_points_flush_rewrite_rules() {
    flush_rewrite_rules();
}

Thank you!

来源:https://stackoverflow.com/questions/57116434/wp-woo-custom-endpoint-is-deleted-after-saving-woo-settings

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!