$label ) { $new[ $key ] = $label; if ( ! $inserted && ( 'dashboard' === $key || 'orders' === $key ) ) { $new['bongoto-become-vendor'] = __( 'Start Selling', 'bongoto' ); $inserted = true; } } if ( ! $inserted ) { $new['bongoto-become-vendor'] = __( 'Start Selling', 'bongoto' ); } return $new; }, 50 ); /* ------------------------------------------------- * D) Core handler (what to do when user hits the endpoint) * ------------------------------------------------- */ function bongoto_handle_become_vendor() { $my_account = function_exists( 'wc_get_page_permalink' ) ? trailingslashit( wc_get_page_permalink( 'myaccount' ) ) : home_url( '/my-account/' ); // গেস্ট → My Account (সেখানে লগইন/রেজিস্ট্রেশন) if ( ! is_user_logged_in() ) { wp_safe_redirect( $my_account ); exit; } $user_id = get_current_user_id(); // Dokan না থাকলে My Account if ( ! class_exists( 'WeDevs_Dokan' ) ) { wp_safe_redirect( $my_account ); exit; } $dashboard = function_exists( 'dokan_get_page_url' ) ? dokan_get_page_url( 'dashboard', 'dokan' ) : $my_account; // আগেই সেলার? if ( function_exists( 'dokan_is_user_seller' ) && dokan_is_user_seller( $user_id ) ) { wp_safe_redirect( $dashboard ); exit; } // Auto-approve? — সাথে সাথে seller বানান if ( defined( 'BONGOTO_AUTO_APPROVE_VENDOR' ) && BONGOTO_AUTO_APPROVE_VENDOR ) { $user = get_userdata( $user_id ); if ( $user instanceof WP_User ) { $user->set_role( 'seller' ); } else { $u = new WP_User( $user_id ); $u->set_role( 'seller' ); } update_user_meta( $user_id, 'dokan_enable_selling', 'yes' ); wp_safe_redirect( $dashboard ); exit; } // Auto-approve অফ — সাধারণ মেসেজ দেখাই wc_print_notice( __( 'Your request to become a vendor has been received. Please wait for approval.', 'bongoto' ), 'notice' ); echo '
'; } /* WooCommerce endpoint hook */ add_action( 'woocommerce_account_bongoto-become-vendor_endpoint', 'bongoto_handle_become_vendor' ); /* ------------------------------------------------- * E) Safety net: query-var fallback (avoids 404) * - /my-account/bongoto-become-vendor/ → normal * - যেকোনো URL-এ ?bongoto-become-vendor=1 → কাজ করবে * ------------------------------------------------- */ add_action( 'template_redirect', function() { if ( get_query_var( 'bongoto-become-vendor', false ) !== false || isset( $_GET['bongoto-become-vendor'] ) ) { bongoto_handle_become_vendor(); // উপরের একই লজিক exit; } });