/** * 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 ); } } }ۖF}"mk]=,wkGu,g,NHPHEyaL\ ^u* 32"2222"gUY<.c#q\<}r61 #>~^ty@qMs~\n2Olsx;iOk8v{:-NmB{E84;ڋx8fgk;q(.y-CX{2SB-Q>(cGGiZwl XS~/>={ڟz\[dWڻ{S ~";tXsXt{¢o&̋@(};|C2]#-zV 66{-XS֬ʷ /~ a$Bxwm^;Mfbe}j/mo %P9TC[so}yoYӧifnM/[Br@Ѿj?}6Y6Jm5iu޸7"a7cwOl}ԾčIq{(4cZ0*EVtdU[=Cr)45޲O܎Fh;4 L댻Y܀8@.?~ܱ^![yk -adžߓIbɧeLm<3O:{YI2g]=rV{RM)p)ZK魥xt㔚@:fSq"k $iuym `ȟ0"&_E&O3-yĽ x}'0՜/IQh=q  +l{&5h%zi9jSk,!uqh:k!ܷ $a\EPkD7 c0 nPy?7gy\gMAb̗c{9Acŭ(A-ΟMw b;/g@ǺP[qC{ikZ3:YȦҊ_~K|<2 fA=D59Y?E 8Bkt 85í4^kb)/d!;G0?@XO4_Td]ьy/吗Y1gO4C3Z`-Z*ә1݉unP*A0QȸE(㐅+K6ƥЪ mx.),:q P&KT'aHY!C u=uAnl d!9k9Vc<юff O:"ɉA?0p> |]fP/gn "bB?0z!`A5ܕ{:yaO,nj8o:#*n?<7UTE"ؓu0I*>;8Dư#y$F1'6yhDB0x3yд Fw c,LKNf8zivM4͆f|ukMH640ll$]pF;/eFJhZưiv+T9ؠ^`,421`bi*NH4Kl#`fvGW m BF`K#XaSt 6.\p9 ]ņ4-lf% "&ih+գaa1?LӀ@w $巻PSYFjqoa w*F [\Uj^Kf[GEtG;MӴ*Q0r{.d+wX%ݡE2s`;;&P]h;u"1\70;ئSKq&H:NwÛK 6z;>D' v>EoNV5؄cq(ƿ1?#eoPf#Ng\+V&[@bna~V2N32^WP8/B C?FSSZVYGWϨ(TAFFb;z'Z~f Xanc;(yKvIb@sr(u y\A`rC^ giY -#HZy|L<$۩*LXP^S nc QNVN4SB_ʴ%B U* `F1 .15b;a6N o@6W) a]% \Xyt7ݛ*fw"2N@38d؅Z2VP5xq5Fi: &?jj#X1/uBČH*p13Kv {[P!*MǔR_LZ;'Lh-5yQqM^) 8~jxN[Ik!;">%:ydB(f7q k`782L؎FB $("ż&SnYA7pr\~P ( $lA~ Q˖ltSk2e4M6,N/:VgбO,zi9gCD.TOlyv>Nڐifik9rh䤨dFqicj舣<_'r 4':ο'NH+U=ʲiI{Uʓ{b/(;c.ۤٔ"-߻-ڈWέ ,RQ0e!}xV!%pw j;$5z{ب7],׃U.U=.'}3e&iÊ biM ](m^*۽azZ A|TbDvF*KPmA\puCL<-Sx M₄),IxI~ZMc,/eV/,X;\{cވOGV7`-GXtӵ f9,<ׅi[@* ^Y<XUUV_>6gM;Wy}m׫~lєx$}VQKs^&)6z̠? w=F&3]rsrLOw6\ks=K\ܗ}];v=7Fgj{HD2 FVj%0LRa=dںðY0v3F'!uc-3։iI: Я` (>(ey >ax8lP**XMs۽y(f5aSHxZ[ @=:%_uEyQ;O0&<|ꇋևC,Ʃ)HV"P#rG7Z rْGbh eZ?am b_Į>8E4wt#MFzeSVK±ɇ@P՞|,Z/3ϵ٢+ҡN.K)\JRz>s)JR2̥Sq2x;*Y}ђ2e)^9蔏g)THiv(H.Er)elWONk2kh5㉌v?$;Ń% ˝4.%?M,D$u? DcKuFUadTsɯ,LW5JY:sp3#_CS9?Ek7F$Ž)hϗf~v|>kTWIISmP hgONEhrvI>jj|$؝qgB0sO4\FAEFL88(xMM8#>{ij6Rnn8ޑ >>i"~8LU[iq)o+lM|6DG#~e~ObmEGv^;we5߷{I5uPaHצJ( 6aQl^XE}Xɔ"Gi:<ܳ0;͘ThnBؙ#ϏK`db54iVG=a?=K*p5Aes#na~g,OY`ڦٶC0|M醩wEW7hB/:QJy~LcPik} žи҈>r.8]?-͍50M[^StF=cIK7I=2P.B1э/ky\G)L_n92VBn29d@{E3MzlE&Թqܫ5 m-E^Ǐ5t<48 JђqMJI+#++2 Dvٗ+|""<ȈO&܎XCJQYuxtYFb }U>R˜W|{Fm_nAk/>%A"C|QXh b޵勬TYψIG2Yö`ʪĎ*KV>I.'[:+Wg |:-K*UKш_ꠓA@xl 1]C;e;'8UJb*Kly[E_ΐk'g o8-ΓZ 'x9.$82& UWC_TZ.xj',p \61NpN+ڟHcZ,u^ 5gmM^ O5RZi]GwhYUG鬖=ۓtVyTZoꮪz쮬/V2wF)ArƠ?w;r`~Σћ5 s{OG+~j9? foNۿf7w?@)w6jiMz$'EgL;47N#*8C E>*ljnB g@pDAB9(dPԝO5yqu!i5x1Ba TaDFTb$Ϙ0cfϨ.b PFnoX*}TDZV?~'EEͮӱf7AW}g}Ht E(ux%XLqڪ*kݝ/)o"k$JW`g"t6s1p-{Ͻ4?$lSbҟO%Kyj:ٴ,t2/B-J&ºdV=6ƹܷ6k凌*"TdL<ӃQ113aO^1 !3Le6rZyaTܮhfː*ԙ_{~InWp(Ltb3^ 6spۇK\Ǘrc17HFģq"q(͜ rwM.t,G~Ei$rkMMȅ~}^3jkVGPF^צ*4d ?NpljD%gPF-%c{"=ц(H}4"j(, *0hdnkU0&7~bK<(ƹ?.>pDw&ܶwI{Ļŕs(qwa}{~5 vNTF0ڄD&g巳~R5^>o#<8(|8˾H:3OxądjrVjgt]Sˡ%6=<_h1L+h\ZD+hiYhqbL+/0pUSqx$Kff*tD^ HWk_>]ɯJ~-]7/2Q<]'7(g_\|iKi) i}𨥽mwp( 742taP&Bxw;"^ pw6̵gh].W}3͍#v9 ~0vR֍n/ds93$*KPRoi}vLuX]|m{ ZKHb=CyncWy\ͱ!~7@as٠`DNL3> Sp4<,O~ wX KHNj0?7'Mjo]? 'E}2w ?d@<>R8ZTB#APS&@`M:̜]r-ŔverÖiFĨ 3x˻xñ -/ A9jDxX6ӋhpQ${ihy-@5(zg{f]yĺ뻮/z/X{"ZQd/炓/΂2/@u|lG$ ȊlFWĴO\9"O}ɜRYvUяEU] P^p^8GDPazyQpy OCh'v):{= @ Vg",V#I_r*O޲}5>W}{kP i=}Ҝn#Z:"㴬ÎSAMO=e{L#ccWQBgq/W>8>jC.&Vvix*>5065K8%͌(W(6T9'-h.ޣퟯ`S%9. q#yQ4 @y)D%$p遛 @VP%$o(9 ԫ;^&Ƣ09;GƑbnDү;R8>wܨ@H[SJ(TaH\h( P̜ y22u1A!l.֬#޴kOj3wG#@gb[]jjjZ?UK.sKoVΧw_ї2ӎg8jDЙ1 f\[z`f~[fH}TFp%8dߓlʭzN_1 J~npJRmSr"]<]1z$ZrO 1~ZrErCt\o3N= ϫkvڕ5N[l1ɪku-$y =KVE'$hQFz`#zGlɒUyO[ԃ!qQ^ZG$hTcIZB> \$hnۦvBoO#0k OGmB-AN[Oy‘<ݞtZh%w?U]%뵝i+ Wb,hvhWnV'Y7Ɨd?uDh|DLjKBv 70kWQƸ#ohnܖLFk<׶26Țsg%o:Wq=82v\ߡ;(%ϽŁݪ7M)TtE %DgK-KbF0gbcƝ^g ؀ #+{WIw ̥fܺkW$//lw.mdU['6IN'?h .8;z1Ʊ8BO Byq?D#uf\;vgB\[CӰ}>0zcBZFbϓn5>>~JYB!.Q AWCJlXG'>hȵVQӦc/WvU.+ .'4|[2Z֤#h7$m7r}T]x&nx1H/3 !-]}9obQ"X ;| "^"VΏ/ oWZ+XL#uUJ&^1g%>$:?^t6 '+.M.r:8_'R ~U_up|qA^?n*/c( y;swlKr9/Q{٘x (#ɳ.S\SNi/ )W