| @@ -19,9 +19,9 @@ | ||
| 19 | 19 | if ( LP_Helper::isRestApiLP() || isset( $_POST['action'] ) && 'heartbeat' === $_POST['action'] ) { |
| 20 | 20 | return; |
| 21 | 21 | } |
| 22 | 22 | |
| 23 | - add_action( 'init', array( $this, 'add_rewrite_tags' ), 1000 ); | |
| 23 | + add_action( 'init', array( $this, 'add_rewrite_tags' ) ); | |
| 24 | 24 | add_action( 'init', array( $this, 'add_rewrite_endpoints' ) ); |
| 25 | 25 | add_filter( 'option_rewrite_rules', [ $this, 'update_option_rewrite_rules' ], 1 ); |
| 26 | 26 | } |
| 27 | 27 | |
| @@ -295,8 +295,34 @@ | ||
| 295 | 295 | $menu_slug, |
| 296 | 296 | CourseBuilder::QUERY_VAR_ITEM_ID |
| 297 | 297 | ), |
| 298 | 298 | ]; |
| 299 | + | |
| 300 | + if ( empty( $args['sub_menu'] ) || ! is_array( $args['sub_menu'] ) ) { | |
| 301 | + continue; | |
| 302 | + } | |
| 303 | + | |
| 304 | + foreach ( $args['sub_menu'] as $sub_menu_slug => $sub_menu_args ) { | |
| 305 | + if ( is_array( $sub_menu_args ) && ! empty( $sub_menu_args['slug'] ) ) { | |
| 306 | + $sub_menu_slug = $sub_menu_args['slug']; | |
| 307 | + } | |
| 308 | + | |
| 309 | + if ( ! is_string( $sub_menu_slug ) || '' === $sub_menu_slug ) { | |
| 310 | + continue; | |
| 311 | + } | |
| 312 | + | |
| 313 | + $rules[ $key_rule ][ $menu_slug . '_' . $sub_menu_slug ] = [ | |
| 314 | + "^{$page}/{$menu_slug}/{$sub_menu_slug}/?$" => | |
| 315 | + sprintf( | |
| 316 | + 'index.php?%s=1&%s=%s&%s=%s', | |
| 317 | + CourseBuilder::QUERY_VAR_IS_COURSE_BUILDER, | |
| 318 | + CourseBuilder::QUERY_VAR_MENU_SLUG, | |
| 319 | + $menu_slug, | |
| 320 | + CourseBuilder::QUERY_VAR_ITEM_ID, | |
| 321 | + $sub_menu_slug | |
| 322 | + ), | |
| 323 | + ]; | |
| 324 | + } | |
| 299 | 325 | } |
| 300 | 326 | } |
| 301 | 327 | |
| 302 | 328 | apply_filters( 'learn-press/rewrite-rules/course-builder', $rules[ $key_rule ], $page ); |