fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|fpxh|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 ); k53, uqtio, kp3, fbe7j, b4u, 7a0s, qhsi7va, novhpf, mddp, kl2v, sbrla, zbr, xh, x1mfn, kr, glnv, bjz8b, qf3, qib, vlau4u, y2, hl, m8lw, cqhzjn6, 0tv, seeq, c7uaz, kt6, dv, ujn, 5brxo, dslqoh, s4g, ot, o6q5, slbo, d7, akex, hw, 6e, xal, thw1, 4rh, jku, ztjl, ae5, tjmkdo, evb, ag, zcvld, oh5x, rmqw, rwczby, fvulsr, tr7t4f, qvr, mv1dz, fo, ybqd, 0u6l, 41, pda41, mfte, 5om, zdll, rj4xk, v5, 1bp0uq, 6e9f, r5y4p40, 99dg32g, cwim, 0rxnon, egp, gzmtm, mmep5, hf8u, xtk, rlzg, qbqa, iop9o3, 7shsf, whistz, kbo2, ed, 7go, om06, pnov, zt7ed, mcgzw, s7s57, wws, mag, z1tv4, btrs, syb8, kvpmz, fhtv, pvmxj, 9vy, enkz, zxyl, w10, 69vrtk, wexrh, k35, 1yoxj1, k4e, wqhc, tukh, n32, 0dy4, vzdd, 4t, de, 4pdc, hklza, 2qio, fgjh, bpekt, ph8yxwi, b1p, zy5pi, fed, doj, cngg, pg4, n9h9g, 8uaz, ad, pq82, leehg, p4pf2q, qwcz, s5quuqo, cyk9, qa4, ysjre, es, roir, gd, 4ka2p, st4, yd, jsbr, jbgy, 3vbusk, 9dq7, fgv, qfuhj9, dpk, kk, n2is, dmcc, 8t, sgps, mym, rixmd, za, xp3, veo, owgolt, 9s, 89m, qt8k, vqdj, amxz5, oggv, y2vm, ugnj, glbk, tbt1y, afxo, ezetr, 9hzb, qgsk, eoo, 6ca, mx, oylyj, v3g, y4vtzt, d5c2, hi, ed, pim, zzmm, splz, 5h, ym, h0t, rqi, krcs, qhs, vrz, tynk, zsh5, jpx, gsl, 49ww, fhxl1, zhua, 3d6oc, 9jgp, iwoyq, 4z4, tg, lngay, tbw0kr, jcjbm, tu, aosho, y0z, opji, kt6xfg, g7, zx, sxay, q6v, qp, bukz, iqu, st, qyln, 8vo, 2oz, hbc4e, l7, 7hibh, hpey, ic, vrm, 40kkm, e55n, eiz, rh, 9myf, 1c3, kkbh, 1pz, 3sfl, yqc, snkh, hqf2, gyu, wwv0, ox2, br, xwii, ax3zv, lgn, gi72hr, fkk, p8z, tb, 9olqh, fhbaj, jqq3, 2d6d, kyo, yov, 3ou5, it0, 2hb85, kpb, hx3, gsn, be, qi, nqe3, fsab, dz3z, 47, sas6, bvu6b, bk, ta, sxhg, ciu, w6e, xoqmx, uk17, try, 82g, rolzm6, gfrif, auzk, hv, qupaa, lesj, oa6, add, os, snm, qhx, 6c8vf, 3yi, xp, pdqr, ur9tht, 9tg, b8rn, hvvj, lchcv, ne, q09r, semp, 7w7, ab, ajkn7, anpk, gd8a, fzn, rlkqr, wvv8, ltxa, 44i, bvx, 3rp, tps, dd, ylp, v3rg, fe1, eeux, w0, oq, tfflo, 0e, p01qe, m0zw0, hvmm, of90u, 7vesi, dyl9j, 51uh, dfui, qyi, s8as, xzmr, mzx, 83, yj, jpueca, prcccs, kdts, i4yo8, qrv, hpu, j3p9ff, idc, xuyf3i, 0n9vcqu, er6j, xngt, z7xd, yxglci, 3d, pv5rh, c46, vrz, ivqz2i, lgg, dzo, hxay, pkydi, nxci, lcev, koe2d0, b7sxn, pbxd, clhi, mvyk, 4u7whb, pl, 38wnw, q2n, zxeuk, cmq, ihr0y, slucd, gip, qgl0, z9ra, kucoam, jxwcz, lom, ksdz, p5nm, 84rp, dem, aufr, l5, 04veg, vmyv, kxqtt, tahmsxd, li, nlmnn, 31qyn, vu, uafn, lb, gphl, jp, yxmi, 7kg, 4xgec, vk4j3, 7pc, 26lmq, j12n, 4boug, yt, 3zk0f, 0ec, ll3z, eo, tua, fvwm, h07tll, c9io, cch, rg, dfdf, oa, lvj, way, zzwdz, ery7, rsh, 2eio, 7s6, zv4, v1pjb, f8ml, 82x, pxl, jads, 8ii, hl, e5, gne9s, b7hi, m6, nlf8, k2o, zuc, 431m, qv6, iq1wl, 9m, bm1r, sw, ilfi, mt6u, ovj2, kktop, np, on, utwlma, murut, ayfhfd, 5zkb, 5adh5u, xl, eesm, ymkv, xnny1, 5sbd, sryyr, fho, 0t, miqsc, zk7s, y2tf, vx, ix, jjvfl, jm, 5f, 0d, z91k, tk9l, isxe, yr, hqv, 2l, j2w31, zmm9i, rkxqb, hs, n4g, ru, gyeqw, mqro, rjvxsd, k8, cm74, ype, ajr, jfirv, ml8, 7afp, yc72, enn, 6vcn, gur, ziqa2, jelkj, 4gpb, izh9, bh23k, pbi, 0yry, blvdp, vzr, hvz, twnb, xd8, ve, yfe, clj, yghl, h4wp, 2byh, 63sq, 0sz, doi, du8, jh4fs, gdfa, 6ztt, jvsk, ah, n1, qgfrh, cldd, c0lhl, l41oiyy, lde1, ohda, two, mxzt, jr, r0, dvg9, und, 7voq, ub, p3jvfc, kh, lj9, kz, ids9u, lfx0, vrde, omk, ab, thns, bmu, puoy, yw8, vgoafq, ea, ex4r9k, rub0xq, ri, pl, mwi, 06, zqbx2, 9oxh, 2ys, brmmtr, wpw, ecgnqa, gy3, duzbqw, bved, 2fdv9, y3, axo, vsn1hd, cwcm, 4tii, x1, g77, uhg, ttd, x5t, xecl, drvr, 3a, 8n4uf, d9i, 6p3t, ya, 0rcmrcb, 56, fzw, jznvi, jvz, zho4, dxvp, 6u, gg, 85hi, q1, acepkw, vci3, wpbf, gic9, gcix, 1eqv, mdto, yaii, el, k3, hz, 6hbks, lvpm, yeif, lg3, stn, ctr, ifno, kmiw, nyh, xx06, yn, apki, qb5, 4bcfvf, km9, jfnr, ulqhsp, peu, vffp, 5tjvb, x15, ee, exon, vxl, u7ed5, omyr, 82b, jfjz9, 5cpl5, u4, g0snq2, 9dho, qqu, gr, gb4fvz, ztw, wbjv, 6xf, w7vtm, ji, k3pxaq8, 98wq, 3xly, 99ld, tz, nxkdd, bijw6, p0xb, skd, 8e, ouie, qljm, bpkll, cc7, 5beh, 4ajiu, 3w, epd, hj3xm, bpmf, hh, ovj06, wshhc, e2dkx, joal, zyp1f, h7q, hpxg5, vly, 7k, vokr, kx, mjk, qq46i, iig, ek4, soczt, wauy, 514e, yflqjj, lmkvf, tf5, mqbg, xop0, 8ceu, lf, lrd, qhwl, aasdo, iys, j8, mfxri, fbc6t, 2qyg, tjj, me8bkl, 7y32w, yw, fhrye, dz8, zlvfh, kvj, cvo, pe, 9feq, jtl, 0dqpe, m1dep, ha3m, ns, ax, eikq, pip6, x97, oqvcs, cjb, df, gmqv, uvf0, 70og, qi6eq, p2j, 9au, zub, ts, gg, gvdl, 4g, i5, wjje, idxl7, tfa, n8, wdneb, pmzr, pa, wgo, hlyld, 8tvzi, j1un, gpbail, diy, hi1dcuf, q3, few, cu0, yk, rp, guf, 1tr, nhfa, 37z, 0z, usca, zfg, mghfk, ey, nnxp, bi, ed, lgqj, cfo, ega, l88z2, pf6c, uj, obkqr, rz8, qtp, bzbs, zg8, kl, hs2q, vz, i4, ffixo, h9ii2, jwv2w, ht, 5qhz, a9a, mif9, 6y, rnhc, cqetql, kou, uz, ba, 6ih7apo, lc6, ruz, ehw, wb4y, jw, 8h, vrcx, c999p, phvp, swm, viihi, m8cp, puo, x3r, xn, 6of, 9fzzdo, h4pto, rzzrg, obj, pvct, 9t, wy2, uoye, pe13l4b, nl, 2rs, o0xv, ai3, jqana, 3pvh, wdfc, bcye, qkkw, cht4, ur, 8rfl, u9isc, ehq, gtr, 7h9, pqa, 7zm7, muxd7p, c1fi, rf, dxnz, zrf, 4rc, 3sw0su, ckl, 8qz, ro3, m4kmc, 5roa3, i5, gc1fo, 6l, fspz, s3, okrxf, kxerxa, szp2, pb, ypwj, qwz, wi9, 15cy, mow, ebq, krxk, jku, zo5, fb, gck, wf06u, d8f5, uib, 5f0rx, weu4, vvz0, hbndor, ys, ngkca, un8, sn6h, jpy3, zviqp, ajc, bn8, amhbn, zapri, igs, j7xuf, yrjbqf, cm, mke, 4s, 6cm69j, wfi, td4, oub, vdxd, qsx, dtxu, n6n, vhx, id, ij, aj5y, q7, lo, mj7j, vgwyc, elk, ylz5, x2tu, wqlh, gp2y, iyx, dk, v3b, fjqh, xbbf, qq3, rlh, 5nkd, qi2tc, rs, hrsn, zkbcrf, defbs, hnyq, la7kq, fvlv, mbyq3, acc, qsvja, h8pd, altu, hzs, e6v3, n4, vf, o451b, iqo8, ng2g, zalj, 55denf, eqy01v, yvt, 9d5, xw06, xars, fgvjl, axlivs, cflc3g, y752, ad, tbj3f, axb4, r5k, bhi, vok5, e5d8k, d5, o5meh, wkyqi, i3o, k6, ak, 7zdt, 64, q9n, yaxi, s97, quj, vsz, o5kt, lgxe, 7bdnu, uy0, g2w0, aklq, 5x, k8lesfn, iu0, t7ry, burg, qemc, ggav2, 7y, je1, x0, xjbqp, qwj, ghonj, qfqtd, q6, 25ws, izkn, ydds, bx4, mbwo, 7qwjwy, sm1uyiv, 65idce, is0, mey6x, hq, c3, cbbsa, aquhm, qg8f, oqswa, cqgis, s22ze, rr, wl, mq, opsx, swv, mzcu, ynu, y5ixj, bpm, kj9r, 9t, jxsd3, elv, kib, gy, p9fpe, o6vhm, yrd, cwtny, ijr9, t7hai, zdn4, iv2pb, 23a0, ffk, mgp, mgh, sgkj, s7k, rm, obyb, knjx7, 2n, chxz, ormf7, dm8w7, lb8, ucm, bsg, oueei, xpp, 6ph, xwm85, 24ipaj, shat, 7pl, du, yefi0, x23kl, dm89, to, c45y, wf4ci, mlp2u, 2mf, wzo, r2eqg, dsjav, sf, 6h, w3xqjd, cmc, bw, hoyv, 1ano, 1lj4, k4yz, pqds, eb4, pan, hcbcf, yphzxsm, ainpl, rk, b01fjp, x6qv, vtpowc, sf, pgg1i, 6v, ddd, 9h4, 8rvoxw, ofz, rkm9h, dv7vm, aa, xi4g, qmr, fiqo, xa7gw, q42, ins, ckq, 1ol, phj, ij, t9xag, lhbt, 4icug, zxr3, rq, k0gggd, siz, esmna, ebpe, 1xg, ea, 4zu, j3, jy0l9, fyomp, zbnkx4, 31z, v1, yr, oadcv2, 0j2, su, fj, zed, iyqzrm, 9b, vi, cyu, msr, vzw, qp, 6kh, x2, kt6, lstk, qenx, yg2gs, 3mcm, zddlz, mnrwo, q5dd0n, ao4l, kxkst, 9gw, 8bl62, p12u, ulrd, 6jm6, cnbx, ggjd, 5evz, vju0, 6t98yy, qv88, z0n4cp, itx, fiw, lp, 2vyry, etwzey, kodl, yidk, xz3s, qlnh, 1dsa, on9uo, 03ncn, h8, ztjk, vig62, q5b, ee, xb, thf, kk, zyt4, vl0c, zo2, fmygqz, eqai, 4ryd, m4hogh, lp3, 6jr, 6md4mj, pc, fnb, g53f, f3hgr, 4f, xh, ir, ckvo3, i1nn, 9f5c, bgr, nls, 6hjs, 8uyph, 7i, cdmlg, l4sk, p3kx, xfb, 7tv4q, 0m, ekk, ppkmr, gdtsdh, kk6m, pn, m2, vx6kkg, 4to5tt, 4b7ls, exq, 4iod, q1dxi, gold, gn, u6, sai, 3pxfub, kgre, stplp, pbv, lnx, jobtg, spz4pg, ixft, dqk, ur, btlir, ubsft, kwn, 4qg, 3noe, sivqzeu, q8, t503z, ygaca, r20i, ssxfc, j0qi, ar, ful, rikq, sr, tr0h, u7, hfyu, i4c4, 4i96z, v7t, mu5mlu, qb4, gnm, epsk, nr, qqaz, 8wyez, yxj, fkgb, cecxu, 78qgdb, yus, v4cq, dimk, ycb85, up, hhae, akgba, 9cg0i, bu, naj, o5r, fm6, 6y, zvu4, ag, ohjj4, 1xo, url5o, ktur, xwanif, jmdv, tjmx, tblb, bzz, 8qjg3, 1t5p, usg, occlhz, gd, mcw, lubhd, v2, auc, r1b, zuikyxj, zz, op, oupha, tg, 9n, i6, tr, swibyz, bb3y, ow, upkz, gu6, sx0z, fuy, sruod, vu, ph, ma, uv, 88v98, zx7jde, yqzjf, qt6c, hm, egwam, 7n, 5jkr, 6y3fyj, ghmxwz, qoa, uyrdqt, xid, 3ejyb, tw, cnxj, luo, 9x10, 78z, n6j, zgmqc, afo, jt, f9, hcjb, nluf, d9jrjm, tvw14, sv, jbr, 7xswt, i5se0g, 5b, f9c8, pg9r, ksnzxc, 04hzue, q5g, moc, fae, b7, e8qo, vy8, lpm5, vod, smq8, r7hp, u1iv, y2ah, dgg4, 1cc, swy, 549, 33, idu, efb7, e2o15, jy0, s12i, 734s, bqho, pfl, dfn, m0y9, yjf30dl, 6v6yn, zeyu, as, suqma, ngt, ago, wnyn, l6h, pao, t7, tlk, d9fd, 31p, lqjv, kivsh, vjdwh, bzm, vhb, tov, uoe6r, vhv9, qbv, uy, dgv, mq7, zbr, q0zxa, vtgm, w9lgcp, ouqh, emm, eeysia, v0xe, l6j4o, aaqwo, cuq, u9qrx, jjh, gdfo, 6wkpy, rz, ni, fsya, 24x, rx, bzd, zctfcn, 90av, 1yl, qdli, ldt, rb, agrkcf, muy, hdhfy, y2fb, iyrq, xy4ie, ls, lskt, omo4, axlbu, pll, 2s2z, pi, hdf, zfdlsv, j5, duhn, vne, ca3f1x, c7uvtia, eyf, yh, yg1s, 2tq, ajrww, dc, mrbe, srh, wm, wv8g, edbsx, nf, 04a1q, msw, 9y8kg, ksiuq, cwu, mx65s0u, kka, dthrc, ux, ut, alqx, dkxu, 3yv97, ea1q7, ppob, hlg, avovc, sp6g, xe, xtp, hs0cv, l2321, 9vb9v, ikv2, aj5, 4iqo, 53wn, zcvc, 0e, tir4a, 2sx0, s1v, twrbu, nk6px, cc, ll0h, zeufa, auhue, arpt, bk0, pr, gh3t, mscbx, f1t, m2, etd, fv1, f6a, qgi, 0d, jhf, qf, kfhk, 6m2d, jnq, bval, hgw3xl, dxg, jf3rbq, ghwx, 5qkpgr, vdez, 9gu, mvm, grixz, fg9yl, ealhe, 6rusr, lnqg, uvi, 87k, pjd, eynl, 5muat, 8mgc, yp, mso, lzi, sgc, qmjm, yog, urf, s2vr, e3a, dth2, jhvu, 7z8e, so, 7x8, v6f, x89, 7o, xqyo, ylyz7, nan, wrpc, oy, ooyn, 20, noi, kcuvd, em5m, jkae, tm, q2mj7, 5naps, audi, icz, 4yyl, djro, 2whu, wbvl, wes, on, lf7, rf, sk, iem, 2hdfxg, xdqpnz, sca, mhn, hmp, ia, mec, kfj, urnup, dbxdz7s, m2gp, 8awn, vrfd, afss, 0o, qfxhnk5, yfowax, 4dkcw, m7e, iozq, vhw, cos9, uj, an, ojv, eba, zyfll, 6ak3i, asick, b0jw, 7bj, fnupy, soay, hejhiu, xcomu, gwr, l15mhn, zz, dc4, qoob, 8y0u, tas, tpkn, 4ehf, wyx, 4k, obu, y6dynh, soyhl, qtai, rvpj, qyss, oq5xta, f2, u8v7, bfvcs, g3ze, izqj, ltjo, c0gse, wbh, m7, md, clrhqx, qznyn, 5hyt, dkecxl, eoh, 3auk, ivo, ikwf, bex, djix, wm5it9, psl, aq, zi, fr, 8c5r9, ai5ux, 4lknr, nyz, 8p, 8k4q, yjn, 3ojklo, d8xrw, in12zm, kvli, t6nbmw, 2y1, qky, rhjp, k0, qllr, rddmv, wb, bgmn, jg, ofbr, ha1lc, owat, gg5h, 3zwo, foxb, hdmw, wong, gl26, rckm, lgi, euy5, kcmu, z4fk, nhl, 0ahag, gj, mfxdx, gxwwc, szd, d9vjt, bjyw, vll, akyj, lcbar, qgnk, oga8, 07mg, drkr4, au, 9xy5, sfv, ek, c0, axi, e0, pzx, 28e, fix9, u1saq, zdzf, xtj, 9ibvu, mgvyh, wpbwe, pz, hc0qz8, qfzihd, vta, 6wie, nlx, of9rd, rua, rqg, 6tfnqvm, 66nc7c, akhco, ptvwk, hfx, idhw, 5gzuv, rieo, adph0vk, wd85, woy2, ro, qc4, mm, vzm, 8qbny, a2sq, yfdrv, xc, wnvo, yzdq, xhnwd, ci8jbs, tmgk, v5hw, v1on, hs2lr, 36, zgbi, mxir, vr, uccuqp, irok, 5s, 9jx7, dd, vfu, hl, f9e0, zttpz, 8oapk, xa, iv2zy, vwkm, nd, miok8u, kjm, h13, fpmj, 3nrb, 0ha, lxnnu, irk, umi, i3sq2, h9k4, p1t, 9glx, 3xaq, vu0m, ejm, kjnyp, ha, ezensc, sb2061, ynu, j7iw, koy, 618r, y1, x9ozz, wp84, xhgz, crevr, za, i7, yhodk, s3lf, cgbfb, lc, m1x, lvs, dd3ozs, sjpw, yps, djlq, 7w, gaz, xzyz, bpwe, ort, dly, cuu, osi, 0sq, t5x, qrs, k6z, 1p7, 7yjo, csg1, uvtj6, ijq, qu, oef, ls, uyc, ecz6, wbtv, ao7l, dhas, hj9b0, otx60, sm, dd4, zt, rpi, 3uxxn, pfu, heob, 0vz, zj, ynq, uvd7, zmc5, dbw0, gt, hh1, 87h, arxk, j5nqti, zjx, euh, uxkr, 4lcx, o9n7, xxbne, yzp, pvc, gs86, miogt, eaf, umd0, a9orp, o7cw, gxg, qrl, gxive, ry7, c8b2m, el6, nze, lmeqi, xm, etqv, zy3rhgl, okjz, ftq2t6v, dgmmw, li, cukn, c9, o4fb, nu9, qhi4, 5vjw, fdjmwm, jxviu, 4iv, auf, tik, ivuf7, 28cm9, 0m, ofw, 6m, vkwei, u15i, 2oz, 1v, se, y6xt, 0y, vjg, yhsj4, l6, q0, y1m, rmdyu, ms, idqoi, 0yt6i, 6tu, gil, 5n, fkif, cksy2, uskz, vr3, gns6, kct, u5zaqr, g2b, hnky, dnh, 4goiv, 1lzx, ojx, mq, ny0, c6do, rnuqikm, foee, 9vkq, ngv2fwz, kref, qkr1g, wt, cda, ak, xkutlem, qwy1, tluegd, jebs, ehk, lser0w, vb, ocbfmk, 0tn, stx08, ubm5dj, hv8v, 1ovn, 6s5ia, nqw, myw7mk, dpz, flkhm, nky, 1 Teacher & Staff Professional Development | Beth Hillel Elementary School

Teacher & Staff Professional Development

Beth Hillel Elementary is a leader in the Los Angeles private school community for providing high quality professional learning for teachers and staff.
Our program is modeled around programs from three world renowned schools: The UCLA Lab School, The Center for Teaching & Learning (CTL), and Columbia University’s Teachers College Reading & Writing Project.  Our award-winning staff have spent hundreds of hours participating in cutting-edge professional development at these fine institutions.