/** * Helper functions for interacting with the Store API. * * This file is autoloaded via composer.json. */ use Automattic\WooCommerce\StoreApi\StoreApi; use Automattic\WooCommerce\StoreApi\Schemas\ExtendSchema; if ( ! function_exists( 'woocommerce_store_api_register_endpoint_data' ) ) { /** * Register endpoint data under a specified namespace. * * @see Automattic\WooCommerce\StoreApi\Schemas\ExtendSchema::register_endpoint_data() * * @param array $args Args to pass to register_endpoint_data. * @returns boolean|\WP_Error True on success, WP_Error on fail. */ function woocommerce_store_api_register_endpoint_data( $args ) { try { $extend = StoreApi::container()->get( ExtendSchema::class ); $extend->register_endpoint_data( $args ); } catch ( \Exception $error ) { return new \WP_Error( 'error', $error->getMessage() ); } return true; } } if ( ! function_exists( 'woocommerce_store_api_register_update_callback' ) ) { /** * Add callback functions that can be executed by the cart/extensions endpoint. * * @see Automattic\WooCommerce\StoreApi\Schemas\ExtendSchema::register_update_callback() * * @param array $args Args to pass to register_update_callback. * @returns boolean|\WP_Error True on success, WP_Error on fail. */ function woocommerce_store_api_register_update_callback( $args ) { try { $extend = StoreApi::container()->get( ExtendSchema::class ); $extend->register_update_callback( $args ); } catch ( \Exception $error ) { return new \WP_Error( 'error', $error->getMessage() ); } return true; } } if ( ! function_exists( 'woocommerce_store_api_register_payment_requirements' ) ) { /** * Registers and validates payment requirements callbacks. * * @see Automattic\WooCommerce\StoreApi\Schemas\ExtendSchema::register_payment_requirements() * * @param array $args Args to pass to register_payment_requirements. * @returns boolean|\WP_Error True on success, WP_Error on fail. */ function woocommerce_store_api_register_payment_requirements( $args ) { try { $extend = StoreApi::container()->get( ExtendSchema::class ); $extend->register_payment_requirements( $args ); } catch ( \Exception $error ) { return new \WP_Error( 'error', $error->getMessage() ); } return true; } } if ( ! function_exists( 'woocommerce_store_api_get_formatter' ) ) { /** * Returns a formatter instance. * * @see Automattic\WooCommerce\StoreApi\Schemas\ExtendSchema::get_formatter() * * @param string $name Formatter name. * @return Automattic\WooCommerce\StoreApi\Formatters\FormatterInterface */ function woocommerce_store_api_get_formatter( $name ) { return StoreApi::container()->get( ExtendSchema::class )->get_formatter( $name ); } } }zFo)L/9xN33g|t!bά9#5~6jd_ƕ# f^,<[:v?iWz^` '~dl,,up&X3[d&7ݿgvidN3\<ƔT(BؚkjEg7"Dg~dѕ%w<{ ;T! n1B 72q65Tv\A1p A:Q…,T P\Mː';]U#:N@' mvRŎ^v?>#B-Q4&9OYxy/f(mc#S6ݏݨD+K7b .5=4͏F!c( DWჂ  $DMJ]Ynb#O%P9 R@; |ٰ3옍/^s'bh<Ik3ijNkb?Q[jmP^|v%"cюh dMt,jν+A#H:l j~lNd˟/_!i x–.Yn!?)`X2Z{ ϽF5K")^|Q'}~[³YxE=a&|b VRv<@uBMLlBMm3'ƤQ5QY;[}:vx0T;g8S4"Oe$)j=+S0Bx͞:v: +pph6&7Zm~_aڍʏi~_wo_wN4ڼ3ѿ:5:e:yh?_&o c4++Du퐿sBo;;0 Ͼ; NBD ܦq86jel+u)ns("jo-AA][SK"p:ܶ_]A8Q#Do/6 1KP3I㵂,β|gd a `˜iO>Ymr 5d1O1Odȯf9-@|9#]4+;AJ10861qݻ&1:њJG7/_/}?X V.FG[4Hrډ46[_6 (I^~| e0ȑdzPy8n`~P!?{#E.Ͱվňz[T{;6t~[:ujzgB h Bp T[B"v~s:؊&}yLC虀_>;Ym˗mٝ_֕;o=ƺ&N4f!d2 *܉AM&P/;ʹrlA?0E=I $ãuժ`kd$?d8D#EFG6&Eh}xkDBIz4ZGhZ[ cmu̪m! ѯ^S4 r]ٵ$Fŵ^5vXac;(yGeAeդ0JaPP0 !;^E(߾i,,PVYЌ(9v֭UWMn p:v "R?-rŏ$VN&>K]k1#z̲߮Ҫ(7SȤ^ESG)%Tf.VPZJA^uki/-ftz^vRq#HNJo6Mʊ8%;L;#x2\لԎ2\^-{ *ZG:#J7juOC-Bk/Jxڽ"5eZSxK";ۇn5}7[ 0(G;[G|z|Sr=Z5c_Im}7S /{y@{lh6TgOpwZ]n{٬ڽlՃz0iZsYnoKVa=Y(v!k\pq އζaՠӱg׍u G-Z~QdWѭb&u Q7Ĵ2G(/Hx2Z钄GQI% *R:~iʂuK~08iDqqminu :{ +J>_`A⺿&~L2YX'dʾOtCKd ˍG\ti|^"kN~p8.an,\ލGga)uaxi,j=Iʌ{6k>Gu>`ݧtǸ$ƀS]ix~`}mupSeWNL׉Q'l7 o(d>LEՂLoܕk ݂ [hϕvx@{K/i##htUmL7:2"tӝ5n_JP7F>?ȇvd,Sa!`Q% ]/CYEtYE|HB{֜Qܷ=x'Ŀ 'm:ȶ֨~kRc%_dzFL:yHmAUV%TYz_n&QbO 9t:;1kyTT6wl[xg8LDfקWGg[#7C"OFFnW$<{ 5H4&ZBt#bVuY$wHAw(]͒ &TSbAPtt(TaAO5J9=I tw (({Y94rTwrR۬ [֪PVATP3FPN0|wΔ"xŨ+rYiQ1r'ϣ=h!C^Hߒ sQ|[MrCHf:_nG..|=(F]ĕ[yٞɡĤo`TA<G~zNWNѻq:Xdd#?Ң5Xr`r_5ƊaTDE a \i4?`r'sLb4 u:o6֍֘\[P?1q\e_TWp9SaYLE$rpjLaMa\-CPVה%P!qdMɤ` }dՃo uP,+6V jg(N(Y< XKBJyj ӱ.Kpx:wݛq})FN I`7Nř%_)X]EGM1dۄ`'sQXE]AZ m.ٚ4tӚ%_L]cSӥZѫ)B@`b'TPEbx:/ VJPxw/? O۩uKHdBqV~3!_-d]'륯Qfa "m~fPiPtqXq o\q.,|7 S7Y*qd#ʉ`ĉ b "p; \'7m6!ӌGWR3 ~_:N;PTDL8P- H#2#G/U>unaFRR0NCpQ? ϣ,nH4 O\n.ZNTy18n"ϟKXBWy=ݟeFn3B*=JwnҙҜ$mɌ Yt6eFQtE82arAAqП/ sqKQ@  RM!ڔZrR[qEyq*tJzOF c a;* ߢjkXj.[FNl J @"T@CjiΈݫx`>U^֬)R:kRML"N5bZ-yT9p։\%tᇡsV Jl~Em/gc[f'7QBc3fUN]Ƣ093ƁbnL_^{pȃ@p n!Pi.qMHOӑ''qa\?`a&v[{P_HnYXl=ƩObԚ]auEG/YF* gV@Ih.hd Qg;o1+b!y67yNs8SUaE0=kƓ7zP5+u؋˃>6z0*o< 0 ak@]*P"Ut4ZPn+<'7R/+g`y.Tm^FUhl5.Uu9|j9&& oQ isQj췐6B󪦶o%iS mY7,/nExx8{8t-[QIu_[oP>H^0q[rC:jI)YȝdR-N)J*Z:MSZY+6!?lH]r0BOvb\ϧm(\FK;AF; Xؑ\ny(Dm;?.K6rXn?BzO #^\Z%ӧ82O)"r۬ݟܟܿF('G+rX0SD/#x9/ *OH4CׯDo:ϟxT8ȿj;h% 6Td^1\$IlϸqU)ww44Þ۟!ן!?_ȕ.$?n"y[ƣsVQ`g, ;ɪ77X)\fuO qY处љ6 ˗uym7Sܦ'9=h6)*pչ;q,‹B:C(dU@{^b`ۨ;2D2@.Q ~Zrƚ-vvޚS&[ی|OkmXg嶞`4 @syOhN{T\^9{D<יv0$4Q5:fzsKsG8(tF5ӓ, $LaeͥE|9uM%I< |1t"W/&q.w6o3$32FzO􎌾3 h&7DӐ(TtFPW%DKq#{[ħb0'\؃`9ёS&4WDsw(D$uO\ ^n\OqMYnb ⰴȗUzFhڸ'9d10vBЖk" -- kXq-GU@RԔ߷jrW:Ž/K͑[Cqlۀ;1Ft;)AcJ6v #]LC~[P 3f4+ :D6|| ] a+s0 ,PߍÃc3;\iu:k =0 e_`B;ԙeQ{`snɑ]򆤲mGc˝ڏ]Q#^w8˯BHK6GXr$`~ "^".<9?~xIx5,7]92`32҉=/A%A.Fy7[0c_H8ywYb}P?ʔzR ?׀_b9NJb▅!S vfbηqINv0Љ$K|/z6+2H;|i1x%˔z"9x_րfcאB+J@B+D H^QP=x-nTJCfrA0& _{CO{ݘ ,d<b8MM}rٗ"@.dDARWNmjx+ ,NϊtM׾uS:\0Gr8oq^/>}U3%Ed MTp8 n (lyMC]'!TR;?(| :?S;.1^Dxxk19J l 鍰z2m#[ˊ>{Vk믐RMZ"XS7W+w˃İZԿRo8\$wt$2Gj]ʳ 5355SEzWK\ zios@Xt7|A,F-6 a9͊F ߏci6,r"ȉI+ScY %s 2GʸQU])Ѐ`ڴtq84)!U&8Mor|K'K*wAHr?H.eIǵg!YyBPy㼉yl>W?7{sdj@h)ʐBљO됧2ή8sPidy&ԃ(O>3u|*˱ වIBehA.$oq)g'3ITz+QK4$Y" зBOڤ To.qçF)K9)l w 6)x<^O46af{.፣`02# ގ%$1fi('뾼