Advertisement
palsushobhan

wcfm-cancel-free-never-expire-membership

Jan 18th, 2022
238
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.94 KB | None | 0 0
  1. add_action('after_wcfm_vendors_manage_membership_details', function($vendor_id) {
  2.     $wcfm_membership_id = get_user_meta( $vendor_id, 'wcfm_membership', true );
  3.     if( $wcfm_membership_id && wcfm_is_valid_membership( $wcfm_membership_id ) ) {
  4.         $subscription = (array) get_post_meta( $wcfm_membership_id, 'subscription', true );
  5.         if( isset( $subscription['is_free'] ) ) {
  6.             ?>
  7.             <script>
  8.                 jQuery(function($){
  9.                     $('#wcfm_membership_reset_button').click(function(e) {
  10.                         e.preventDefault();
  11.                         var rconfirm = confirm( wcfm_memberships_cancel_messages.cancel_confirmation );
  12.                         if(rconfirm) {
  13.                             $('#wcfm_vendor_manage_form_membership_expander').block({
  14.                                 message: null,
  15.                                 overlayCSS: {
  16.                                     background: '#fff',
  17.                                     opacity: 0.6
  18.                                 }
  19.                             });
  20.                             var data = {
  21.                                 action         : 'wcfmvm_membership_reset',
  22.                                 memberid       : $('#wcfm_membership_reset_button').data('memberid'),
  23.                                 membershipid   : $('#wcfm_membership_reset_button').data('membershipid'),
  24.                                 wcfm_ajax_nonce: wcfm_params.wcfm_ajax_nonce,
  25.                             };
  26.                             $.post(wcfm_params.ajax_url, data, function(response) {
  27.                                 if(response) {
  28.                                     $response_json = $.parseJSON(response);
  29.                                     console.log($response_json.status);
  30.                                     if($response_json.status) {
  31.                                         $('#wcfm_vendor_manage_form_membership_expander .wcfm-message').html('<span class="wcicon-status-completed"></span>' + $response_json.message).addClass('wcfm-success').slideDown( "slow" );
  32.                                         window.location = window.location.href;
  33.                                     } else {
  34.                                         $('.wcfm-message').html('').removeClass('wcfm-success').slideUp();
  35.                                         $('#wcfm_vendor_manage_form_membership_expander .wcfm-message').html('<span class="wcicon-status-cancelled"></span>' + $response_json.message).addClass('wcfm-error').slideDown();
  36.                                     }
  37.                                     $('#wcfm_vendor_manage_form_membership_expander').unblock();
  38.                                 }
  39.                             });
  40.  
  41.                         }
  42.                     });
  43.                 });
  44.             </script>
  45.             <?php
  46.             echo "<div class='wcfm_clearfix'></div><br />";
  47.             _e( 'Cancel vendor membership: ', 'wc-multivendor-membership' );
  48.             echo '<a href="#" style="float: none; padding: 10px !important;" data-memberid="'.esc_attr($vendor_id).'" data-membershipid="'.esc_attr($wcfm_membership_id).'" id="wcfm_membership_reset_button" class="wcfm_membership_reset_button wcfm_submit_button">' . esc_html__( 'Cancel', 'wc-multivendor-membership' ) . '</a>';
  49.             echo "<div class='wcfm_clearfix'></div><br />";
  50.         }
  51.     }
  52. });
  53.  
  54. add_action('wp_ajax_wcfmvm_membership_reset', function() {
  55.     global $WCFMvm;
  56.     if ( ! check_ajax_referer( 'wcfm_ajax_nonce', 'wcfm_ajax_nonce', false ) ) {
  57.         wp_send_json_error( __( 'Invalid nonce! Refresh your page and try again.', 'wc-frontend-manager' ) );
  58.         wp_die();
  59.     }
  60.     if ( !current_user_can( 'manage_woocommerce' ) && !current_user_can( 'wcfm_vendor' ) && !current_user_can( 'seller' ) && !current_user_can( 'vendor' ) && !current_user_can( 'shop_staff' ) ) {
  61.         wp_send_json_error( esc_html__( 'You don&#8217;t have permission to do this.', 'woocommerce' ) );
  62.           wp_die();
  63.     }
  64.     if( isset( $_POST['memberid'] ) && isset($_POST['membershipid']) ) {
  65.         $member_id          = absint( $_POST['memberid'] );
  66.         $member_user        = new WP_User( $member_id );
  67.         $wcfm_membership_id = absint( $_POST['membershipid'] );
  68.         $WCFMvm->wcfmvm_vendor_membership_cancel( $member_id, $wcfm_membership_id );
  69.         $member_user->remove_role('disable_vendor');
  70.         $member_user->add_role('wcfm_vendor');
  71.         delete_user_meta( $member_id, '_disable_vendor' );
  72.         delete_user_meta( $member_id, 'expired_wcfm_membership' );
  73.         do_action( 'wcfm_vendor_enable_after', $member_id );
  74.         echo '{"status": true, "message": "' . esc_html( __( 'Vendor membership successfully cancelled.', 'wc-multivendor-membership' ) ) . '"}';
  75.         die;
  76.     }
  77.     echo '{"status": false, "message": "' . esc_html( __( 'Vendor membership can not be cancelled right now, please try after sometime.', 'wc-multivendor-membership' ) ) . '"}';
  78.     die;
  79. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement