ref(env) wip
This commit is contained in:
parent
53d71ea183
commit
c61e631172
5 changed files with 33 additions and 21 deletions
|
|
@ -17,7 +17,6 @@ use WC_Product;
|
|||
use function add_action;
|
||||
use function array_map;
|
||||
use function assert;
|
||||
use function base64_encode;
|
||||
use function is_string;
|
||||
use function wc_get_products;
|
||||
use function wp_create_nonce;
|
||||
|
|
@ -33,12 +32,7 @@ $products = array_map(callback: Product::from_wc_product(...), array: $wc_produc
|
|||
$context['products'] = $products;
|
||||
|
||||
// Injecte les états initiaux des données du Produit sous forme de JSON dans le contexte.
|
||||
$page_states = [
|
||||
'nonce' => wp_create_nonce('wc_store_api'),
|
||||
'authString' => base64_encode(
|
||||
Config::get('WOOCOMMERCE_API_CONSUMER_KEY') . ':' . Config::get('WOOCOMMERCE_API_CONSUMER_SECRET'),
|
||||
),
|
||||
]
|
||||
$page_states = ['authString' => Config::get('WOOCOMMERCE_API_AUTH_STRING'), 'nonce' => wp_create_nonce('wc_store_api')]
|
||||
|> wp_json_encode(...);
|
||||
assert(is_string($page_states));
|
||||
$context['page_states'] = $page_states;
|
||||
|
|
|
|||
|
|
@ -131,7 +131,8 @@ function retire_merdes_wc(): void {
|
|||
*/
|
||||
function genere_balises_img_dans_produit_dans_reponse_rest(
|
||||
WP_REST_Response $response,
|
||||
mixed $_product,
|
||||
WC_Data $_product,
|
||||
WP_REST_Request $_request,
|
||||
): WP_REST_Response {
|
||||
// Vérifie que la Réponse a des données
|
||||
if (empty($response->data)) {
|
||||
|
|
@ -169,37 +170,34 @@ function genere_balises_img_dans_produit_dans_reponse_rest(
|
|||
return $response;
|
||||
}
|
||||
|
||||
add_filter('woocommerce_rest_prepare_product_object', 'genere_balises_img_dans_produit_dans_reponse_rest', 10, 2);
|
||||
|
||||
/**
|
||||
* TODO.
|
||||
*/
|
||||
function genere_prix_maximal_produit_variable_dans_reponse_rest(
|
||||
WP_REST_Response $reponse,
|
||||
WC_Data $_produit,
|
||||
WP_REST_Response $response,
|
||||
WC_Data $_product,
|
||||
WP_REST_Request $_request,
|
||||
): WP_REST_Response {
|
||||
// Vérifie que la Réponse a des données
|
||||
if (empty($reponse->data)) {
|
||||
return $reponse;
|
||||
if (empty($response->data)) {
|
||||
return $response;
|
||||
}
|
||||
|
||||
// Si le Produit n'est pas Variable, assigner le prix du Produit comme prix maximal
|
||||
if ('variable' !== $reponse->data['type']) {
|
||||
$reponse->data['prix_maximal'] = $reponse->data['regular_price'];
|
||||
if ('variable' !== $response->data['type']) {
|
||||
$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
|
||||
$reponse->data['prix_maximal'] = collect($reponse->data['variations'])
|
||||
$response->data['prix_maximal'] = collect($response->data['variations'])
|
||||
->map(wc_get_product(...))
|
||||
->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.
|
||||
*/
|
||||
|
|
@ -216,3 +214,8 @@ add_action('init', 'retire_script_galerie');
|
|||
add_action('template_redirect', 'retire_merdes_wc');
|
||||
add_action('wp_enqueue_scripts', 'dequeue_woocommerce_styles_scripts');
|
||||
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');
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue