]> _ Git - physioassist-wordpress.git/commitdiff
wait #7330 @3:00
authorsoufiane <soufiane@cubedesigners.com>
Wed, 26 Feb 2025 16:40:03 +0000 (17:40 +0100)
committersoufiane <soufiane@cubedesigners.com>
Wed, 26 Feb 2025 16:40:03 +0000 (17:40 +0100)
wp-content/themes/physioassist/resources/functions.php

index 224028dcd42b58e836e263655121226d721790c2..16561487ae15444c3032a81afca24d288279949a 100644 (file)
@@ -154,33 +154,41 @@ add_filter('wps_sfw_show_one_time_subscription_price', function($price) {
 });
 
 add_action('woocommerce_after_add_to_cart_quantity', function($wps_skip_creating_subscription, $product_id = false) {
+    $app = filter_input(INPUT_GET, 'app', FILTER_SANITIZE_STRING);
     if(!$product_id) {
         global $product;
     }
     $product_id = $product_id ?? $product->get_id();
-    $wps_price_html = "<div class='frequency'>";
-    $wps_price_html .= "<p>Fréquence</p>";
-    $wps_price_html  .= '<div class="wps_sfw_subscription_wrapper">';
-    $wps_price_html .= '<div class ="wps_wsp_onetimesimple_wrapper">';
-    $wps_price_html .= '<label for="wps_sfw_check_simple_cart_one_time_purchase"><input name="wps_type_selection" type="radio" class="wps_sfw_check_simple_cart_one_time_purchase" data-pro_type="one_time" value="one_time" id="wps_sfw_check_simple_cart_one_time_purchase" '.(!$wps_skip_creating_subscription ? "checked" : "").' data-id="' . $product_id . '">';
-    // translators: one time price.
-    $wps_price_html .= sprintf( esc_html__( 'One Time', 'woocommerce-subscriptions-pro' )) . ' ';
-    $wps_price_html .= '</label></div>';
-    $wps_price_html .= '<div class ="wps_sfw_subscription_inner_wrapper">';
-    // translators: placeholder is price_discount_percentage.
-    $wps_price_html .= '<label class="wps_sfw_subscription_label" for="wps_sfw_check_simple_cart_subscription_purchase"><input name="wps_type_selection" type="radio" class="wps_sfw_check_simple_cart_subscription_purchase" value="subscribe" id ="wps_sfw_check_simple_cart_subscription_purchase" data-pro_type="subscription" '.($wps_skip_creating_subscription ? "checked" : "").' data-id="' . $product_id . '">' . sprintf( esc_html__( 'Monthly', 'woocommerce-subscriptions-pro' ) ) . '</label></div>';
-    $wps_price_html .= '</div>';
-
-    $wps_price_html .= "</div>";
+
+    if(!$app) {
+        $wps_price_html = '<input name="wps_type_selection" type="radio" class="wps_sfw_check_simple_cart_one_time_purchase hide-on-desktop" data-pro_type="one_time" value="one_time" id="wps_sfw_check_simple_cart_one_time_purchase" checked data-id="' . $product_id . '">';
+    }else {
+        $wps_price_html = "<div class='frequency'>";
+        $wps_price_html .= "<p>Fréquence</p>";
+        $wps_price_html .= '<div class="wps_sfw_subscription_wrapper">';
+        $wps_price_html .= '<div class ="wps_wsp_onetimesimple_wrapper">';
+        $wps_price_html .= '<label for="wps_sfw_check_simple_cart_one_time_purchase"><input name="wps_type_selection" type="radio" class="wps_sfw_check_simple_cart_one_time_purchase" data-pro_type="one_time" value="one_time" id="wps_sfw_check_simple_cart_one_time_purchase" ' . (!$wps_skip_creating_subscription ? "checked" : "") . ' data-id="' . $product_id . '">';
+        // translators: one time price.
+        $wps_price_html .= sprintf(esc_html__('One Time', 'woocommerce-subscriptions-pro')) . ' ';
+        $wps_price_html .= '</label></div>';
+        $wps_price_html .= '<div class ="wps_sfw_subscription_inner_wrapper">';
+        // translators: placeholder is price_discount_percentage.
+        $wps_price_html .= '<label class="wps_sfw_subscription_label" for="wps_sfw_check_simple_cart_subscription_purchase"><input name="wps_type_selection" type="radio" class="wps_sfw_check_simple_cart_subscription_purchase" value="subscribe" id ="wps_sfw_check_simple_cart_subscription_purchase" data-pro_type="subscription" ' . ($wps_skip_creating_subscription ? "checked" : "") . ' data-id="' . $product_id . '">' . sprintf(esc_html__('Monthly', 'woocommerce-subscriptions-pro')) . '</label></div>';
+        $wps_price_html .= '</div>';
+
+        $wps_price_html .= "</div>";
+    }
     echo $wps_price_html;
 });
 
+//
 add_action( 'woocommerce_update_cart_action_cart_updated', function($cart_updated){
+    $app = filter_input(INPUT_GET, 'app', FILTER_SANITIZE_STRING);
     foreach ( WC()->cart->cart_contents as &$cart_item ) {
-        if($_POST['wps_type_selection'] === "one_time") {
+        if ($_POST['wps_type_selection'] === "one_time") {
             apply_filters('wps_skip_creating_subscription', true, $cart_item);
             $cart_item["wps_type_selection"] = "one_time";
-        }else{
+        } else {
             apply_filters('wps_skip_creating_subscription', false, $cart_item);
             $cart_item["wps_type_selection"] = "subscribe";
         }
@@ -188,6 +196,7 @@ add_action( 'woocommerce_update_cart_action_cart_updated', function($cart_update
     return true;
 });
 
+// Surcharger le template lié au paiement
 add_filter('wc_get_template', function($template, $template_name, $args, $template_path, $default_path) {
     if ($template_name === 'checkout/payment.php') {
         $custom_template = get_stylesheet_directory() . '/woocommerce/checkout/payment.blade.php';
@@ -198,19 +207,41 @@ add_filter('wc_get_template', function($template, $template_name, $args, $templa
     return $template;
 }, 10, 5);
 
+// Nécessaire du label
 add_action('woocommerce_before_add_to_cart_quantity', function(){
-    echo "<p class='grey-label label-quantity'>Quantité</p>";
+    echo "<p class='grey-label label-quantity hide-on-desktop'>Quantité</p>";
 });
 
+// Nécessaire pour la redirection juste après avoir ajouté au panier
 add_filter('woocommerce_add_to_cart_redirect', function() {
     $app = filter_input(INPUT_GET, 'app', FILTER_SANITIZE_STRING);
     if ($app == "true") {
         return wc_get_cart_url()."?app=true";
     }
-    return wc_get_cart_url();
+    return false;
 });
 
+// Nécessaire pour la redirection vers la page thankyou
 add_filter('woocommerce_get_return_url', function($return_url, $order) {
     $app = filter_input(INPUT_POST, '_app', FILTER_SANITIZE_STRING);
-    return add_query_arg('app', $app, $return_url);
+    if($app) {
+        return add_query_arg('app', $app, $return_url);
+    }
+    return $return_url;
 }, 10, 2);
+
+// API
+function cancelSubscription( $data ) {
+    $subscriptionId = $data['id'];
+    do_action( 'wps_sfw_subscription_cancel', $subscriptionId, 'Cancel' );
+    wps_sfw_update_meta_data( $subscriptionId, 'wps_subscription_cancelled_by', 'by_admin_bulk_action' );
+    wps_sfw_update_meta_data( $subscriptionId, 'wps_subscription_cancelled_date', time() );
+    return "Annulation ok";
+}
+
+add_action( 'rest_api_init', function () {
+    register_rest_route( 'wsp-route/v1', '/cancel/(?P<id>\d+)', array(
+        'methods' => 'GET',
+        'callback' => 'cancelSubscription',
+    ) );
+} );