You can set your own custom query vars in a query, then use that value to set a class variable that you later read in the filter:
class WPA69844_where {
var $days;
public function __construct(){
add_action( 'parse_query', array( $this, 'parse_query' ) );
}
public function parse_query( $query ) {
if( isset( $query->query_vars['my_days_var'] ) ):
$this->days = $query->query_vars['my_days_var'];
add_filter( 'posts_where', array( $this, 'filter_where' ) );
add_filter( 'posts_selection', array( $this, 'remove_where' ) );
endif;
}
public function filter_where($where="") {
$where .= " AND post_date > '" . date('Y-m-d', strtotime('-' . $this->days . ' days')) . "'";
return $where;
}
public function remove_where() {
remove_filter( 'posts_where', array( $this, 'filter_where' ) );
}
}
$wpa69844_where = new WPA69844_where();
Then for your query:
$args = array( 'my_days_var' => 30 );
$posts = new WP_query( $args );