ref(env) wip

This commit is contained in:
gcch 2026-04-30 10:56:01 +02:00
commit f986f91f81
5 changed files with 33 additions and 21 deletions

View file

@ -8,6 +8,7 @@ declare(strict_types=1);
use Roots\WPConfig\Config; use Roots\WPConfig\Config;
use function base64_encode;
use function Env\env; use function Env\env;
Config::define('SAVEQUERIES', true); Config::define('SAVEQUERIES', true);
@ -25,6 +26,10 @@ Config::define('DISALLOW_FILE_MODS', false);
// WooCommerce // WooCommerce
Config::define('WOOCOMMERCE_API_CONSUMER_KEY', env('WOOCOMMERCE_API_CONSUMER_KEY')); Config::define('WOOCOMMERCE_API_CONSUMER_KEY', env('WOOCOMMERCE_API_CONSUMER_KEY'));
Config::define('WOOCOMMERCE_API_CONSUMER_SECRET', env('WOOCOMMERCE_API_CONSUMER_SECRET')); Config::define('WOOCOMMERCE_API_CONSUMER_SECRET', env('WOOCOMMERCE_API_CONSUMER_SECRET'));
Config::define(
'WOOCOMMERCE_API_AUTH_STRING',
base64_encode(env('WOOCOMMERCE_API_CONSUMER_KEY') . ':' . env('WOOCOMMERCE_API_CONSUMER_SECRET')),
);
// Stripe // Stripe
Config::define('STRIPE_API_SECRET', env('STRIPE_API_SECRET')); Config::define('STRIPE_API_SECRET', env('STRIPE_API_SECRET'));

View file

@ -8,6 +8,7 @@ declare(strict_types=1);
use Roots\WPConfig\Config; use Roots\WPConfig\Config;
use function base64_encode;
use function Env\env; use function Env\env;
Config::define('WP_DEBUG', true); Config::define('WP_DEBUG', true);
@ -20,6 +21,10 @@ Config::define('DISALLOW_FILE_MODS', false);
Config::define('WOOCOMMERCE_API_CONSUMER_KEY', env('WOOCOMMERCE_API_CONSUMER_KEY')); Config::define('WOOCOMMERCE_API_CONSUMER_KEY', env('WOOCOMMERCE_API_CONSUMER_KEY'));
Config::define('WOOCOMMERCE_API_CONSUMER_SECRET', env('WOOCOMMERCE_API_CONSUMER_SECRET')); Config::define('WOOCOMMERCE_API_CONSUMER_SECRET', env('WOOCOMMERCE_API_CONSUMER_SECRET'));
Config::define(
'WOOCOMMERCE_API_AUTH_STRING',
base64_encode(env('WOOCOMMERCE_API_CONSUMER_KEY') . ':' . env('WOOCOMMERCE_API_CONSUMER_SECRET')),
);
// Stripe // Stripe
Config::define('STRIPE_API_SECRET', env('STRIPE_API_SECRET')); Config::define('STRIPE_API_SECRET', env('STRIPE_API_SECRET'));

View file

@ -8,8 +8,13 @@ declare(strict_types=1);
use Roots\WPConfig\Config; use Roots\WPConfig\Config;
use function base64_encode;
use function Env\env; use function Env\env;
Config::define('DISALLOW_INDEXING', true); Config::define('DISALLOW_INDEXING', true);
Config::define('WOOCOMMERCE_API_CONSUMER_KEY', env('WOOCOMMERCE_API_CONSUMER_KEY')); Config::define('WOOCOMMERCE_API_CONSUMER_KEY', env('WOOCOMMERCE_API_CONSUMER_KEY'));
Config::define('WOOCOMMERCE_API_CONSUMER_SECRET', env('WOOCOMMERCE_API_CONSUMER_SECRET')); Config::define('WOOCOMMERCE_API_CONSUMER_SECRET', env('WOOCOMMERCE_API_CONSUMER_SECRET'));
Config::define(
'WOOCOMMERCE_API_AUTH_STRING',
base64_encode(env('WOOCOMMERCE_API_CONSUMER_KEY') . ':' . env('WOOCOMMERCE_API_CONSUMER_SECRET')),
);

View file

@ -17,7 +17,6 @@ use WC_Product;
use function add_action; use function add_action;
use function array_map; use function array_map;
use function assert; use function assert;
use function base64_encode;
use function is_string; use function is_string;
use function wc_get_products; use function wc_get_products;
use function wp_create_nonce; use function wp_create_nonce;
@ -33,12 +32,7 @@ $products = array_map(callback: Product::from_wc_product(...), array: $wc_produc
$context['products'] = $products; $context['products'] = $products;
// Injecte les états initiaux des données du Produit sous forme de JSON dans le contexte. // Injecte les états initiaux des données du Produit sous forme de JSON dans le contexte.
$page_states = [ $page_states = ['authString' => Config::get('WOOCOMMERCE_API_AUTH_STRING'), 'nonce' => wp_create_nonce('wc_store_api')]
'nonce' => wp_create_nonce('wc_store_api'),
'authString' => base64_encode(
Config::get('WOOCOMMERCE_API_CONSUMER_KEY') . ':' . Config::get('WOOCOMMERCE_API_CONSUMER_SECRET'),
),
]
|> wp_json_encode(...); |> wp_json_encode(...);
assert(is_string($page_states)); assert(is_string($page_states));
$context['page_states'] = $page_states; $context['page_states'] = $page_states;

View file

@ -131,7 +131,8 @@ function retire_merdes_wc(): void {
*/ */
function genere_balises_img_dans_produit_dans_reponse_rest( function genere_balises_img_dans_produit_dans_reponse_rest(
WP_REST_Response $response, WP_REST_Response $response,
mixed $_product, WC_Data $_product,
WP_REST_Request $_request,
): WP_REST_Response { ): WP_REST_Response {
// Vérifie que la Réponse a des données // Vérifie que la Réponse a des données
if (empty($response->data)) { if (empty($response->data)) {
@ -169,37 +170,34 @@ function genere_balises_img_dans_produit_dans_reponse_rest(
return $response; return $response;
} }
add_filter('woocommerce_rest_prepare_product_object', 'genere_balises_img_dans_produit_dans_reponse_rest', 10, 2);
/** /**
* TODO. * TODO.
*/ */
function genere_prix_maximal_produit_variable_dans_reponse_rest( function genere_prix_maximal_produit_variable_dans_reponse_rest(
WP_REST_Response $reponse, WP_REST_Response $response,
WC_Data $_produit, WC_Data $_product,
WP_REST_Request $_request,
): WP_REST_Response { ): WP_REST_Response {
// Vérifie que la Réponse a des données // Vérifie que la Réponse a des données
if (empty($reponse->data)) { if (empty($response->data)) {
return $reponse; return $response;
} }
// Si le Produit n'est pas Variable, assigner le prix du Produit comme prix maximal // Si le Produit n'est pas Variable, assigner le prix du Produit comme prix maximal
if ('variable' !== $reponse->data['type']) { if ('variable' !== $response->data['type']) {
$reponse->data['prix_maximal'] = $reponse->data['regular_price']; $response->data['prix_maximal'] = $response->data['regular_price'];
return $reponse; return $response;
} }
// Assigne le prix de la Variation la plus chère dans la Réponse // Assigne le prix de la Variation la plus chère dans la Réponse
$reponse->data['prix_maximal'] = collect($reponse->data['variations']) $response->data['prix_maximal'] = collect($response->data['variations'])
->map(wc_get_product(...)) ->map(wc_get_product(...))
->map(static fn($p) => $p->get_price())->max(); ->map(static fn($p) => $p->get_price())->max();
return $reponse; return $response;
} }
add_filter('woocommerce_rest_prepare_product_object', 'genere_prix_maximal_produit_variable_dans_reponse_rest', 10, 2);
/** /**
* Retire la propagande commerciale de WooCommerce du menu. * Retire la propagande commerciale de WooCommerce du menu.
*/ */
@ -216,3 +214,8 @@ add_action('init', 'retire_script_galerie');
add_action('template_redirect', 'retire_merdes_wc'); add_action('template_redirect', 'retire_merdes_wc');
add_action('wp_enqueue_scripts', 'dequeue_woocommerce_styles_scripts'); add_action('wp_enqueue_scripts', 'dequeue_woocommerce_styles_scripts');
add_filter('woocommerce_enqueue_styles', '__return_empty_array'); add_filter('woocommerce_enqueue_styles', '__return_empty_array');
add_filter('woocommerce_rest_prepare_product_object', 'genere_balises_img_dans_produit_dans_reponse_rest', 10, 3);
add_filter('woocommerce_rest_prepare_product_object', 'genere_prix_maximal_produit_variable_dans_reponse_rest', 10, 3);
// DEBUG
// add_filter('woocommerce_store_api_disable_nonce_check', '__return_true');