Custom rewrite rules for WordPress

<?php

/**
 * Rewrite rules
 */
class rewriteRules {
	/**
	 * Construct
	 */
	public function __construct() {
		add_action( 'init', array( $this, 'rewrite_rule' ) );
		add_filter( 'query_vars', array( $this, 'query_vars' ) );
	}

	/**
	 * Rewrite rule
	 */
	public function rewrite_rule() {
		add_rewrite_rule( '^some-page/([a-zA-Z0-9-]+)/?', 'index.php?pagename=some-page&product_id=$matches[1]', 'top' );
	}

	/**
	 * Query vars
	 */
	public function query_vars( $query_vars ) {
		$query_vars[] = 'product_id';

		return $query_vars;
	}
}

Usage

$product_id = get_query_var( 'product_id' );