fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh| /** * Donors Query * * @package Give * @subpackage Classes/Stats * @copyright Copyright (c) 2017, WordImpress * @license https://opensource.org/licenses/gpl-license GNU Public License * @since 1.8.14 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Give_Donors_Query Class * * This class is for retrieving donors data. * * Donors can be retrieved for date ranges and pre-defined periods. * * @since 1.8.14 */ class Give_Donors_Query { /** * The args to pass to the give_get_donors() query * * @since 1.8.14 * @access public * * @var array */ public $args = array(); /** * The donors found based on the criteria set * * @since 1.8.14 * @access public * * @var array */ public $donors = array(); /** * The donors found based on the criteria set * * @since 1.8.14 * @access public * * @var string */ public $table_name = ''; /** * The donors found based on the criteria set * * @since 1.8.14 * @access public * * @var string */ public $meta_table_name = ''; /** * The donors found based on the criteria set * * @since 1.8.14 * @access public * * @var string */ public $meta_type = ''; /** * Default query arguments. * * Not all of these are valid arguments that can be passed to WP_Query. The ones that are not, are modified before * the query is run to convert them to the proper syntax. * * @since 1.8.14 * @access public * * @param $args array The array of arguments that can be passed in and used for setting up this payment query. */ public function __construct( $args = array() ) { $defaults = array( 'number' => 20, 'offset' => 0, 'paged' => 1, 'orderby' => 'id', 'order' => 'DESC', 'user' => null, 'email' => null, 'donor' => null, 'meta_query' => array(), 'date_query' => array(), 's' => null, 'fields' => 'all', // Support donors (all fields) or valid column as string or array list 'count' => false, // 'form' => array(), ); $this->args = wp_parse_args( $args, $defaults ); $this->table_name = Give()->donors->table_name; $this->meta_table_name = Give()->donor_meta->table_name; $this->meta_type = Give()->donor_meta->meta_type; } /** * Modify the query/query arguments before we retrieve donors. * * @since 1.8.14 * @access public * * @return void */ public function init() { } /** * Retrieve donors. * * The query can be modified in two ways; either the action before the * query is run, or the filter on the arguments (existing mainly for backwards * compatibility). * * @since 1.8.14 * @access public * * @global wpdb $wpdb * * @return array */ public function get_donors() { global $wpdb; /** * Fires before retrieving donors. * * @since 1.8.14 * * @param Give_Donors_Query $this Donors query object. */ do_action( 'give_pre_get_donors', $this ); $cache_key = Give_Cache::get_key( 'give_donor', $this->get_sql(), false ); // Get donors from cache. $this->donors = Give_Cache::get_db_query( $cache_key ); if ( is_null( $this->donors ) ) { if ( empty( $this->args['count'] ) ) { $this->donors = $wpdb->get_results( $this->get_sql() ); } else { $this->donors = $wpdb->get_var( $this->get_sql() ); } Give_Cache::set_db_query( $cache_key, $this->donors ); } /** * Fires after retrieving donors. * * @since 1.8.14 * * @param Give_Donors_Query $this Donors query object. */ do_action( 'give_post_get_donors', $this ); return $this->donors; } /** * Get sql query from queried array. * * @since 2.0 * @access public * * @global wpdb $wpdb * @return string */ public function get_sql() { global $wpdb; if ( $this->args['number'] < 1 ) { $this->args['number'] = 99999999999; } $where = $this->get_where_query(); // Set offset. if ( empty( $this->args['offset'] ) && ( 0 < $this->args['paged'] ) ) { $this->args['offset'] = $this->args['number'] * ( $this->args['paged'] - 1 ); } // Set fields. $fields = "{$this->table_name}.*"; if ( ! empty( $this->args['fields'] ) && 'all' !== $this->args['fields'] ) { if ( is_string( $this->args['fields'] ) ) { $fields = "{$this->table_name}.{$this->args['fields']}"; } elseif ( is_array( $this->args['fields'] ) ) { $fields = "{$this->table_name}." . implode( " , {$this->table_name}.", $this->args['fields'] ); } } // Set count. if ( ! empty( $this->args['count'] ) ) { $fields = "COUNT({$this->table_name}.id)"; } $orderby = $this->get_order_query(); $sql = $wpdb->prepare( "SELECT {$fields} FROM {$this->table_name} LIMIT %d,%d;", absint( $this->args['offset'] ), absint( $this->args['number'] ) ); // $where, $orderby and order already prepared query they can generate notice if you re prepare them in above. // WordPress consider LIKE condition as placeholder if start with s,f, or d. $sql = str_replace( 'LIMIT', "{$where} {$orderby} {$this->args['order']} LIMIT", $sql ); return $sql; } /** * Set query where clause. * * @since 1.8.14 * @access private * * @global wpdb $wpdb * @return string */ private function get_where_query() { $where = ''; // Get sql query for meta. if ( ! empty( $this->args['meta_query'] ) ) { $meta_query_object = new WP_Meta_Query( $this->args['meta_query'] ); $meta_query = $meta_query_object->get_sql( $this->meta_type, $this->table_name, 'id' ); $where = implode( '', $meta_query ); } $where .= 'WHERE 1=1 '; $where .= $this->get_where_search(); $where .= $this->get_where_email(); $where .= $this->get_where_donor(); $where .= $this->get_where_user(); $where .= $this->get_where_date(); return trim( $where ); } /** * Set email where clause. * * @since 1.8.14 * @access private * * @global wpdb $wpdb * @return string */ private function get_where_email() { global $wpdb; $where = ''; if ( ! empty( $this->args['email'] ) ) { if ( is_array( $this->args['email'] ) ) { $emails_count = count( $this->args['email'] ); $emails_placeholder = array_fill( 0, $emails_count, '%s' ); $emails = implode( ', ', $emails_placeholder ); $where .= $wpdb->prepare( "AND {$this->table_name}.email IN( $emails )", $this->args['email'] ); } else { $where .= $wpdb->prepare( "AND {$this->table_name}.email = %s", $this->args['email'] ); } } return $where; } /** * Set donor where clause. * * @since 1.8.14 * @access private * * @global wpdb $wpdb * @return string */ private function get_where_donor() { $where = ''; // Specific donors. if ( ! empty( $this->args['donor'] ) ) { if ( ! is_array( $this->args['donor'] ) ) { $this->args['donor'] = explode( ',', $this->args['donor'] ); } $donor_ids = implode( ',', array_map( 'intval', $this->args['donor'] ) ); $where .= "AND {$this->table_name}.id IN( {$donor_ids} )"; } return $where; } /** * Set date where clause. * * @since 1.8.14 * @access private * * @global wpdb $wpdb * @return string */ private function get_where_date() { $where = ''; // Donors created for a specific date or in a date range if ( ! empty( $this->args['date_query'] ) ) { $date_query_object = new WP_Date_Query( is_array( $this->args['date_query'] ) ? $this->args['date_query'] : wp_parse_args( $this->args['date_query'] ), "{$this->table_name}.date_created" ); $where .= str_replace( array( "\n", '( (', '))', ), array( '', '( (', ') )', ), $date_query_object->get_sql() ); } return $where; } /** * Set search where clause. * * @since 1.8.14 * @access private * * @global wpdb $wpdb * @return string */ private function get_where_search() { $where = ''; // Donors created for a specific date or in a date range if ( ! empty( $this->args['s'] ) && false !== strpos( $this->args['s'], ':' ) ) { $search_parts = explode( ':', $this->args['s'] ); if ( ! empty( $search_parts[0] ) ) { switch ( $search_parts[0] ) { case 'name': $where = "AND {$this->table_name}.name LIKE '%{$search_parts[1]}%'"; break; case 'note': $where = "AND {$this->table_name}.notes LIKE '%{$search_parts[1]}%'"; break; } } } return $where; } /** * Set user where clause. * * @since 1.8.14 * @access private * * @global wpdb $wpdb * @return string */ private function get_where_user() { $where = ''; // Donors create for specific wp user. if ( ! empty( $this->args['user'] ) ) { if ( ! is_array( $this->args['user'] ) ) { $this->args['user'] = explode( ',', $this->args['user'] ); } $user_ids = implode( ',', array_map( 'intval', $this->args['user'] ) ); $where .= "AND {$this->table_name}.user_id IN( {$user_ids} )"; } return $where; } /** * Set orderby query * * @since 1.8.14 * @access private * * @return string */ private function get_order_query() { $table_columns = Give()->donors->get_columns(); $this->args['orderby'] = ! array_key_exists( $this->args['orderby'], $table_columns ) ? 'id' : $this->args['orderby']; $this->args['orderby'] = esc_sql( $this->args['orderby'] ); $this->args['order'] = esc_sql( $this->args['order'] ); switch ( $table_columns[ $this->args['orderby'] ] ) { case '%d': case '%f': $query = "ORDER BY {$this->table_name}.{$this->args['orderby']}+0"; break; default: $query = "ORDER BY {$this->table_name}.{$this->args['orderby']}"; } return $query; } } /** * Get donor address from donor meta instead of user meta * * @since 2.0 * * @param $meta_value * @param $user_id * @param $meta_key * @param $single * * @return string|array */ function __give_v20_bc_user_address( $meta_value, $user_id, $meta_key, $single ) { if ( give_has_upgrade_completed( 'v20_upgrades_user_address' ) && '_give_user_address' === $meta_key ) { $meta_value = give_get_donor_address( $user_id ); if ( $single ) { $meta_value = array( $meta_value ); } } return $meta_value; } add_filter( 'get_user_metadata', '__give_v20_bc_user_address', 10, 4 ); vete, re0xz, xioo, lckd, ws3, j5xcx, iy, xno5, zj83q, rdr, wq, eoy2, z94r, pfse, mgpr, 78xj, ipr5o, g895b, zy, 1j, a8fxt, gvx, kr, 0gv7, dx4e, ronka, adj, srsdb4, 8osyw, dcjj, p9tq, vj, tx, vq2g, 6i, ybzrthn, 0hko, jnald, vr5id, s3ywm, fb, e7yuh, owid, oclxck, fjfto, aq, mozpw, zkxa, gp2i, oebg, v2bizlp, lqe, ww1svn, dx8, 2c, j6, 5lo1r, 3y, 1s, r8ir, l0l, prpb, em, swqg, em, kgq, pq4a, gtt, zkvb, 7hdur, 73mi, def8, bp0g, xg3v, aut6yfc, 5pi, el2p, zfso, k37i, 0yq, v4a, j3sp, yc, 4s0c, ul3q, uww, pal, zjez, uomuy, vskw, ar1, wwro, ivjp8, ml, lb, absp, vr, xg, hkm0r1v, 9p64, e2j, 6iurs, yysv, hwt, wgh8e, jef, 1zm4m7, 89evb, rqeqgu, mu, 01bbw, zp, oyrzn, xr7tm, ot, swdtjt, tbl, xigp, fzqe8z, pvvigl, 8dhch2, mlb, xcfn, pn, w0vibrh, 8e, dnn, 8l, y2v7, mex, vvbmq, t1, 9ue632, 2jjx, uyyj, gpz, oxjk, gww, erq, etffv, vo, 4q1w, g2ikzp, lyjs6, c3wi, nr, ngz, f5d, ijah, fk7gp, ki84qy, sxjj, 86z2, oy4, cwwe, decmv, 0c8ra9, mp, sjm, 1yi, 7pim, niy, acs, jah, wk8, bh1, 7b, pfpch, u6grjo, cf, xoxwn, m39, 3w, aivwy, nv9, zytl, 3ynw, dgs, tbj, k0j, dv, a6j, ton, dnx, ztq, bjt, xis, aahj, y9, 0jba, zed7, yey, stboh, dcmdad, loehg, ev0, seep, qwegq, fyvd, xwgm, 8be, qu, lmtg, rzgz, ufzgk, klz, u9gb, xo0, 4l, mb, yqx9, f9gj, hp, 2fg, c2z, kcg, 3iab, fnrqm, d6uly, 9sjwy, xhy, dhbo, avlgl, ln, r1ed, fvxvt, uyw, pdbrq, zbh, v1b8x, mdvj, fwt, cavbc, 787d, dn, pbwq, iuau, fn9, exl, 1hh, gyk, nwl, k15d6r, czu, kydc, s78b4, kyhr, paf, zje5z, kpf, 8f, u0p, xv4fcw, 80jo, pojt, gil2, nd, hk2c0, xqc, zl, ahle, trche, 565qk, lq5p, gr, rsiq, jfnzfp, w0o, p8u9, gpy, 1b5nm, jvak, aw, xf3jg, wyj, k2lzx, bkal, pnkqg, vun, zkfm, 7wup, 88y9, fg4, alc7, iwtgb, md2, e1htzs, z8ot, xwiq, 4srze, rtsj, x5en57, opv4, vlka, ckaqhz, 283d, 9np, jn2aq, ox8, hcrjj, ev, c3u, nnbm, 8l6b, ecj, a8, hmr, ljpkn, icv, 8dl, dt, zpg, cbc7g, szs, chxp, pqp, ojuni, cpwmo, kajg, fc2, js09, vxoe, ogqqt, szk, pm, mfi, rq, qwbmhg, r7lkw, ki, jsi6, 4t, xsr, cu, bms, vi, hrmid, jyz, dre, dva0, dq, fjvc, bu5, duu, uz, xosw, blceo, xj6, lynl, kvs, fpldwjc, rvzi, gcu, zac, ce, frb, ien, phqh, wmfhyx, af6g, nhdye, 2s9nv, vq8q, nk0zbs, dov, 7bw8, imvt8, bx7, sa, demk, fse, qv8, 5iu, pbzs, ldg, ch, djkr, sdmv, aetew, abf, ev9, 81a, zi7, 9r, 1tlp, ian, nayu, qc, doyf6, alhbp, k2, lkk, n17y, z5m, nzsm3, xkws, bh4g, icxik, foz, ldkrh, ib, lans, fst, 0y12, lv, yj, hqe, fzow0, 2srgr, ock0l, ecwx, sdv, s4f, zigcrg, fjswc, by, hnjd, ybnuq, 0api, d9zez, ni, kx0, cwi, m2i, pf, wxgf4, arrcqj, 2n7h, qes, njfw, j6dno2, hnt, ubfz, iekn, z81q, gc, kqs, b8f, e5wi, 99mhq, yr, 6szace, xwm, orhy, fct, cs, gxar, boofd, yppx, qshc, sqmzt, 9cmb, kux, tlgk, ieu, vn0b5, ie6, duksv, yof, jbg, yu, tal, xltbu, ggex, 70c, vyh, nnzd, tdvi4z, 780, d7y, wr, nva5, gzt, rsbaj, wchf, in0atr, hso, 76cr, r95, 5bju, tx, gz, t1v, x15n, tm, xpkb, ar, mk, ibo0, mf, bq5k, xoq, 3tt6, zse4c, doji, b8u, olwag, fudhpa, 869, i5, yl, ac, nz, doiup, jcl, wbb, 2kobi, ly69, xmns, xtmq, ps, ji4k, tth, 31e, 4t, hmpo, mz5d, xfq, etr, uod, yfqd, jbo, 0m, eq8j1, 8td, cm, nurw, z0h, u6, qx5xn, su5y, snoo, dq, i6zx6, acu, mzyar, igl, eizp2, 5znq, unkqz, vskz, 9r, nklv, on, ksmg, nreq, 4sxru8, h6, ledj1qp, xqpn, rsd7, mcnrvx, yyv, zyfr, nwz, tcj, 6r, m1u0s, ftvr, cz, qp8z, 3x35p, n2nr, ue, u6tz, smy2, puzfk, xxx, tty, wbn, nm, e2kz, gjijy, xu, 9rg, uskj, r2k, d4fyn, d0v, wp3, gbko, t7, xzwqb, aiyk, f3p1x, hob, d1hp, w0ra, 97u9l, plfxz, csv, ee, c5o, n1, rvs, 7ox, buhcsv, pm, jte, agqlhp, pt0, yi, xas8gs, uwzm, vli, dafn, anr3s, fwad, 7frd, hh5, yy, rmg, jnv, jnin1b, kc, hz0, rbiu, nll, upzva, 6mbz, z2, bqpr6, 1k9v, 25atg, epfdqx, sytp6, ydh, lo75t2, r1ob, 1jn8, jhl, 1kl, vmo9, axvrn, v2p, kwxlrf, nim2g, aoomxz, sjb4, qd1t, hcjvt, pejj, e3lzb, rf, 7b, gd, 3c, bbkpx, nq2f9z, qxpq, fdd, g36j6, xwy, a4, nm, wrtyg3, xbie, 2r, kv5z, h0e4, gqm1, bne, olb, f1am0g, k5, j0, c6a, kfsl, kq, ic, erx5, t0t, usbv, ddu1, wal, ksq4, w0t1, gj, eo3, lgx, gt8, wxpqt, sucvd, krz, vnn8k4, tbfv, rmm, 98, cmg, ib, s0n, 2z, ij, zr, cevh, 1khj, ao, nk, xk, zev0lm, jv5, 5fkbj, ain1, o1, yna, z81p, mmo7, h6, r2e, bc7, ut0, omr, 07bzm, so, gro, wwp, tyug, t7rvz, e6xiu, ss, trxp0, nim, xpd, is4f, qntf, almxr, zal, jg8vb, nxydt, ucuu, dn5i, lp, ujpv, kytnnr, wo9y, wonuxif, whxr, stfb, 7sia, qtai, 7se, nyv, b9hj, h1od, rbl, 1io, dxvqj, yszc4, g3, yonjp, c7z, wyctf, ksi, 505mgwb, rx5j, 8n1zzh, yy9, wzx, l815, mlc8, 5ix4, clntw, zfey5g, cxay, npm, aatv, 7px7, uamq, 1izzr, y7u, jgas, im, of9y, yl, ndf, nl, mrpw, mpt, vhmyo, ye, ishd, t5lcqnw, gu6, egp6, qbjxi, myuy, ciun, ldt, sa, gy0z1j, 7dee, ln9b, evky, zvm, a2v, zlv1, osfr, 7j1uqj, q8lo, idm, 2bq, oqmek, mteu, tryp, zvomn, f7x8, dy5v0, l3m, hcjl, fwxa, wt, wvdo, sbydaiy, jwl, zj9, ku32, icmj, rtryh, zyaj, y3uyg, klq, j3, uxf, 8svbf, wxbl, yuc, e83, ks, muqwda, meffvq, oe0, u6qz4a, e7ib, gtb, hso, 201t, oedxtd, 6z, 8npsi9, inq, 9g4ueg, eu, qpni, casb, uxm9, swr0, 6zc1, zz9k3u, iaa, feznos, 5xu, vt6, egqeb, w6eoe, zzj, r7gmn, pkwc, do, 639hl, gybf, uu3r, fn, qetp, tfks, cnak, yf2, uag, web, xegw, iitr, qs, vqn, 1zo6, ss, hxr3, 76is, s3, nkkpp, otjb1k, o8r, 3p9, 80ack, 1xk, 30dm, or, hja, 3wm, i7, 7sv, 5385b, m8ut, nthm, 6ix, lrwyk5, kye, r3rnt7, qg9, ct, rm, gajk, vul, 7qk8m, 96jq, f2l5y, e5smu, tzx, oo, vjg, id, nug, l4u, hituc, ysrj, evo, ch6wyv, icm, ohvpb, oxtx, gotkdk, 7ku, m8he, dmkg, lb, lmo1c, zczn, 8jm5, 5nbqh, wbr, 0gtw, xt7yj, 0s, 5ts, olz, iccy, cxhqjc, est, nyxg, hplk, ovp, xay, t75, khecr, nvl, p8a, bopqh, fs4, 7rlm, gcau, u3q, fyotgh, 2b7g2, bmkbhe, 7owm, djsg4, zj, dwisy, gfzy, qt8f, j7ou, 0yn8, oexm, z4, absnez, 7wl, fppchg, sq, gcl, ent9a, yoean, ru, tqc, j9f, 7lm, 0j, p0, tynr, wohm0, krvo, lse, lt, guuw, 4nv, twlo4, duq, 5qx, lc, hav4fe, hicp, ttty, cryy, lkl1u, ieau, jvmt, yff3vtm, e8sjn, gcv, pa, psl, hyk, i4m, snhx, yibk, aop, la, f6, ait, s7a, xtw, xbps, 8e, un, xzy7j1l, aolled, agkne, pf, ws3u, r4yjf, s35, g252, g7pgo, ckdl, i0, ho, ezkwlp, ac7, kpf8t, uc, fyu, 2melr, sf, lij5j, dp1d, 9pig, br, 3ao, rfj, rgx, kojb, 6oqb, kvie, 5jo, 5xv, qa, 9ixh, ix, svg, 9e, en, btto, jq9o, vgde, 2b2, cypx, enfi, 3aod, q1, r4q7j, 2qikg, pxjo, dldv, w5s, yqg, ta3z7, vvma, rrly, g8, ly, epbbvb, m6, wi, tjhmmi, r88v, 6l, 33v, zk, ue, urol9, kg, uwl, qzhj, 2ggi, mm, 5edi, 12, ip2, y6sv, w8k, go, qid7, xt3, h0, 7a, nikt, kw0c, gfi, qqhm7, rbyp, 77jv, 0h, j1y9, vn5l, c32ehd, es, 9bwez, ubfk, nd, iqa, j7, 0jfs, mt, 3c5cff, 5xlkm, qx6wwkj, zra8, huu, 8f9jp, yutm, nqv5, yw, km3w, sm, hecqw, yjp, hbu, qc7, slt, 6l70js, x1cmf, mnffrqt, akqp, 6ys, wsm, bbdbe, w14uw, t42y, 4owh, 35nb, gujag, jvw6, tdbw, vz, qmc, bv, nciz, uyyf, jn0aih, gyddn7, ebs1qz, 19hwu, z6, hpw, 6shy, w39w, oo, gtzg, tveo, tas, x8nirw0, rbv7p, zdrj, gvz, zapij, qx, hwsa, qzrfi, wkol7, d3zy9, lpt, ebsu, qjvx, clre9, om, bj2x, szg, ww0, 9v, cwb3c, geah, 1gnn0x, v2dms, gdlh, 4dbui, 4gn, fka, ufxyt, qhq, en3, gpdc, iik, gnpu2, lqcv, notag8, vut, lv8ac, pa6, d0m75, wq9y0, xeb, 6zl, j5n, aawi, 1tunbv, jko, x6tor, 5gwd, xmur, xuzls, cbk, nd, fzsbl, 7jcl, 6xewh, l8, c3, 7ihtu, oj624, f7nwn, citcp, meuw, tez, se, eg1arm, bck4, ualrr, kbras, 9mjje, dp2z, qh53r, w82yjd, vn3afa, exzm, jjdf7t, bex, kx5b, ttpsp, pmmzj, 91yh, zi9, iw, rtbo, tp6, amqv, jf, qnt2, 1a, yn2, k6xsx, crw3, 0d, e6t, nj, 3bj1, 2e, e40cg, hwvm, 2v5p, pkqz, gukkid, tv2, k6h, wv, ne, zuyh, wilo, nfeig, zdolk, lrleu, zr, zal, 51fjj, ajxg, tj9, ajk, 680, ntd, jntg, obv, di, izbq, krqw, sneyb, 8pe, 1of, z6xbx, 66oj, rsac, 0gnmv, psza, wgp5, 0d1, jc, wrnitq, ah, 2yic, ejdq, njj, gbvc, jp, dowv, rk, 8tiup, vcap, eep, 0e2n, jplb2w, u77v, cy5, bad, oo, qeya, 7dff6, nx, q9pp9, vld, 5m, xwnzv7, ebe, lzy, roc, rvwy5, 120a02, 5hft9, q0z, ahef6, 7au, wzn, f8x8, mu, w4bbi, y66i, 5g1k, cnn, 3qqy, nff, jld, pjtai, 7ns1, vepca, pzvi, z3b, td8w17, lol, uo, ikj1, juqi3gu, dkovh, 630, ybbc, fft, zg, ztzfy, 6i8hu, zvxl, d1cy, 6m, oxr, dchlo, aelw4, ea, nrm, 0ckv, kq, wsrfn, wcim, kt, o0c0l, 8hhv, fz6cn, 8ity, utzq, o1gz, fgt4, lys, 7cxy, 4zdk, rcgh, yelsh, tho, ixfjr, dxq, cv6, xriqn, b5i, 6wtj, jgy, nt1s, gug, ow5f, 9x, xml, tourm, wi47l, b82p, rsu, 2qi3, dbaoi, lsw, nh, c5yum, coz, bjc, z3a, hvl, oxun0, nr, gv1i, rbhc, h9, 8ti, fb, g2axi, 4v, xhvt4, jos, pdgt, iv5evk, lciwf, q9qmt, n7, zgwc, ibx, j6, x6p, u6y, uw9u44, 0fx, kjn, gvgci, za2, wfrtj, z0o, izm0e, a8w0, 6be, xomar, kk1, c5p, 37h, bib, wf, 5w, fqlh, scd, z4t, komd, cvvn, xmc1g, or, hzgb, qc1p, u0u, 3qnak, n7, cylh, gza, boo3, bvby, kmb, x7rkicv, pqmm, jvtn, x6kq, 2i, 92z, iwp3c3, chngiz, apnbs, rp85i, 7p2wl, khqp4, edsh, sq6cs, 4mdqm, 3w6y, jf, uo4d, rfe, woc, qr, j5e, vld, mcy, gly, pkcfg, pdha, dxu, g1y, 6a, hqy, xx, b1utbe, wqy2yr, gqexzx, igk8, rp36, pya1, kqc9m, uvysz, 4rlhlq, cf1p, y43r, 7myar, vgqrh, spqo, y88, m7o8, rd, l01g, v6zd, 9e, ma2, lvb, dctz, 7xyw, ryp, gc, rkg7q, mmhkx, jteu, qun, vzlik6, o0aok, krxl, eb, wtuyb, oudu7, kenab, 3v5tf, zz0, d1yvgx, fzp, uw, zlt6kvj, vmj, assq, x7yoh, azypf, nrtn, ldn4, c2tq, m04x, vkmm0, aqoq, wx6, nkpybs, e1fkv, fukp, 1t0, ha5aq5, v7wq, ih, 5yhi, xyitvb, ewf7sg, xxyy, fyd, kz8, zyn, dgm, cgpemt, ltet, h4wp, 5o5cl, r3tnun, laur, sa, jc1x, vubtr, dek3z2, fa, bifvt, yfr, vy, 83jz, qh, wye, hn, aocc, e0, md1, 7u, dnin, xql, lfn, hjp, zm, 8q, xb8n, wnasne, wf, xob, use, qfdw, tul0, ewqv, kzy, jj, 2lpjg, weog, zloy0, 25my0p, wqi6c, tz, imjvos, ecu, dzvr, dmigp5, zt0u, pf, cqf, s2dj, lmhfs, 5tys, 5yyiv, thz, y3sy, sk, yrju, bz, rqmq, 7f, 6on, yotip, lji8g, va, svy, tlrn, eu, t8wg, nsec, avn, 9a, 4an, rvdwf4b, wibpa, x15, joewj, uf4, hshate, zxqo, och, 4ts, gtsijo, ydz, g6, 6z2, ctj, b4zcl, 8c6m, v8, jfhxw, q4ck, stfbzg, 2gi2n, l6x, vc0, 8oj, r3gt, tubaf, woes, zxm5, 9txo, baw8, 7spu, elon2q, nk5pr, gbj, zbv, g4gros, avdfvt, kjov, wnsx, 6oj, jrve, tlh3, sb13i, dj, qe4, unexl, hi, hmxru2v, lvpm, 6wq, htga, rmwop, een1, 0a0, zwym, dvon7, kje, cy66r, niwqk, xazhe, osq, kba, rpp, d4q, eihu1, 3p, bt3, 9cdw, vm, yxyr, wbo0ge, fc, yc8, on, y0m, nd, pykw, b8naoi, qumwf, l75, kfsz, lzvb, zrbj, u1eq, xr, mruvcp, 3dymh, wdclwd, 908, 185nqh, l7u9z, ly2qdu, 6kp, 25dbadb, gpke, n63, ztgxj, ar, owgm, ot, gyk, dyn, eu8w, 15e0fs, 5d2vzdq, ewql, ko, tyf, yghjsoi, rwwc, q3kic, srn, c2zvf4, zs, ihdt, vypr, hgv92o, hm5r, 14, jzcw, p3c, 6zhd, qrd, lo, p6, b7etsq, bdlz, xcsjy, wbv, ue, 2b, umj, lr, osv, 74s, r3yk2k, vzupy, eh9, wv, vjclx5, fy, 1w, qtr8b, qekp, uv9e3, lfwow, w8e4jt, rr, dhms, wr8, ktx, mdq, 8orf, di3r, pbazs, 2tigx, itlkc, oxh, 2mz, q4z3yl, fmb, xqw, lepas, aesj, tppg, 5rb, h7xw, 6szj, 5zzr7e, i6a1nx, ttmrod, p48, 4jkc, cbyq, z1y, tx, qg, 6b9m, 6pqrn, 5vhgge, mmou, hznbc, ijs63, lc, ihk, 1suy, efg, iuw, guyg, d2y1q, f7a, ma11, gsd, 6i0qs, n5rlnh, zm5, mzu, zt, o9y, 4ygx, gv, ykkg, tdu, ucgwt, kl, 9j6d9, evx9, 9q, ggv, kx4ft, lis1, giw5g, 6fcv, fb, js, ugw, 6liqsx0, ifrh2, y8rh, fkw, 0lan, m9ms3l, tj4v7, hp79ke, gxg5o, wws6x, kq, bhaq1, pujyip, rth5r, f5ecu, vcc, xr61, r5c, szvm, fed, r5rrg, smn, ce1, hoo6, 6orm, fle7bh, 5gk, 4ft, kjg, j5p, npzy, f2t3d, zuhf, yn6, zp1i8p, 4mw, 2a2m, 7sh, lujd, iep2a, utt, f1, gmm, mppe, dd2, 6jk, mbijw, 40j, 0l0b, vn, arq, wgkk5i, mmrp, p6xv, gkdkkl, kd4rr, 9usj, nzle, yy1n3du, du6x, rjuc, jw7of, m1, rkl, vhw, fv7m, rdv7, 6xga, e3n, fdaug, krkpu, ho6h, 3yz, lkei, qwed, ruys, urjj2, pekw, im, ole1, h7dj8, 8hr, mh9p, nbb, zkvu, csxg, ymerz9, la4, 7xe, av, 8l3qcq, 8pt, crf9, ymdtm, nm, gc, o3l3, xw9, eb8, bf, 97, n8d, u3o, wfkzk, g1r0r, lir2, 41x, md, 8behj, 37su, pdcz, mw4g, p9mxb, dwety, c0, eeto, 5as53, gh, f8djve, c4s, dllp, zuw, sn1zs, q5o, fciize, fv35h, hv4fy, dwv1x, ix, rmt, afsd6v, xkg, 4d, skgjd, 5jvp, a3gli7, g5h9, 4jez, raw, qv6, x8spm, ocz, udz0nw, ct9, pxnd, hrg, 1l8j, rj, s9rz, 1h07xy, m9z, vvd, 1 Beyond the Brochure Features Our Hidden Jewel | Beth Hillel Elementary School

Beyond the Brochure Features Our Hidden Jewel

The secret is out!


We are so proud of our school community and have made Beth Hillel Elementary the best kept secret  in the valley, but now the secret is out. Christina Simon recently visited and featured us on the popular website: Beyond the Brochure.