• Resolved kaufmann42

    (@kaufmann42)


    Hi there,

    Looking to have a required End User License Agreement for each vendor account. What I’m looking for is a solution that denies vendors from creating new products until a custom store policy is input on the settings page.

Viewing 5 replies - 1 through 5 (of 5 total)
  • Plugin Author WC Lovers

    (@wclovers)

    HI,

    Please add this code to your site for the purpose-

    add_filter( 'wcfm_is_allow_pm_add_products', function( $is_allow ) {
      global $wp;
      if( wcfm_is_vendor() ) {
      	$vendor_id    = apply_filters( 'wcfm_current_vendor_id', get_current_user_id() );
      	$wcfm_policy_vendor_options = (array) wcfm_get_user_meta( $vendor_id, 'wcfm_policy_vendor_options', true );
    		
    		$_wcfm_vendor_shipping_policy = isset( $wcfm_policy_vendor_options['shipping_policy'] ) ? $wcfm_policy_vendor_options['shipping_policy'] : '';
    		$_wcfm_vendor_refund_policy = isset( $wcfm_policy_vendor_options['refund_policy'] ) ? $wcfm_policy_vendor_options['refund_policy'] : '';
    		$_wcfm_vendor_cancellation_policy = isset( $wcfm_policy_vendor_options['cancellation_policy'] ) ? $wcfm_policy_vendor_options['cancellation_policy'] : '';
      	if( !$_wcfm_vendor_shipping_policy || !$_wcfm_vendor_refund_policy || !$_wcfm_vendor_cancellation_policy ) {
      		if( isset( $wp->query_vars['wcfm-products-manage'] ) ) {
      			?>
    				<div class="collapse wcfm-collapse">
    					<?php if( apply_filters( 'wcfm_is_allow_restriction_message_page_heading', true ) ) { ?>
    						<div class="wcfm-page-headig">
    							<span class="wcfmfa fa-times-circle"></span>
    							<span class="wcfm-page-heading-text"><?php _e( "Store policy not yet setup!", "wc-fronend-manager" ); ?></span>
    							<?php do_action( 'wcfm_page_heading' ); ?>
    						</div>
    					<?php } ?>
    					<div class="wcfm-container">
    						<div class="wcfm-content">
    							<div id="wcfmu-feature-missing-message" class="wcfm-warn-message wcfm-wcfmu" style="display: block;">
    								<p>
    									<span class="wcfmfa fa-exclamation-triangle"></span>
    									<?php
    									_e( "Store policy not yet setup!", "wc-fronend-manager" );
    									?>
    								</p>
    							</div>
    						</div>
    					</div>
    				</div>
    				<?php
      		}
      		$is_allow = false;
      	}
      }
    	return $is_allow;
    }, 750 );

    Add this code to your child theme’s functions.php
    In case you do not have child theme then add code using this plugin –?https://www.ads-software.com/plugins/code-snippets/

    Thank You

    Thread Starter kaufmann42

    (@kaufmann42)

    It appears that this works initially but as soon as a policy is set it can be removed (made blank in the store policies tab) and then this validation no longer works. Any way to check if a policy is populated for validation?

    Plugin Author WC Lovers

    (@wclovers)

    HI,

    Please try this revised code –

    add_filter( 'wcfm_is_allow_pm_add_products', function( $is_allow ) {
      global $wp;
      if( wcfm_is_vendor() ) {
      	$vendor_id    = apply_filters( 'wcfm_current_vendor_id', get_current_user_id() );
      	$wcfm_policy_vendor_options = (array) wcfm_get_user_meta( $vendor_id, 'wcfm_policy_vendor_options', true );
    		
    		$_wcfm_vendor_shipping_policy = !empty( $wcfm_policy_vendor_options['shipping_policy'] ) ? $wcfm_policy_vendor_options['shipping_policy'] : '';
    		$_wcfm_vendor_refund_policy = !empty( $wcfm_policy_vendor_options['refund_policy'] ) ? $wcfm_policy_vendor_options['refund_policy'] : '';
    		$_wcfm_vendor_cancellation_policy = !empty( $wcfm_policy_vendor_options['cancellation_policy'] ) ? $wcfm_policy_vendor_options['cancellation_policy'] : '';
      	if( !$_wcfm_vendor_shipping_policy || !$_wcfm_vendor_refund_policy || !$_wcfm_vendor_cancellation_policy ) {
      		if( isset( $wp->query_vars['wcfm-products-manage'] ) ) {
      			?>
    				<div class="collapse wcfm-collapse">
    					<?php if( apply_filters( 'wcfm_is_allow_restriction_message_page_heading', true ) ) { ?>
    						<div class="wcfm-page-headig">
    							<span class="wcfmfa fa-times-circle"></span>
    							<span class="wcfm-page-heading-text"><?php _e( "Store policy not yet setup!", "wc-fronend-manager" ); ?></span>
    							<?php do_action( 'wcfm_page_heading' ); ?>
    						</div>
    					<?php } ?>
    					<div class="wcfm-container">
    						<div class="wcfm-content">
    							<div id="wcfmu-feature-missing-message" class="wcfm-warn-message wcfm-wcfmu" style="display: block;">
    								<p>
    									<span class="wcfmfa fa-exclamation-triangle"></span>
    									<?php
    									_e( "Store policy not yet setup!", "wc-fronend-manager" );
    									?>
    								</p>
    							</div>
    						</div>
    					</div>
    				</div>
    				<?php
      		}
      		$is_allow = false;
      	}
      }
    	return $is_allow;
    }, 750 );

    Thank You

    Thread Starter kaufmann42

    (@kaufmann42)

    Thank you for that change. I think the code provided breaks the experience on the vendor page however, for the popup add product view.

    edit: it seems to be due to $is_allow blocking other actions outside of products.

    • This reply was modified 4 years, 10 months ago by kaufmann42.
    Plugin Author WC Lovers

    (@wclovers)

    Sorry, are you getting any error due to this code? Can you please show me screenshot for this!

Viewing 5 replies - 1 through 5 (of 5 total)
  • The topic ‘Required Store Policy’ is closed to new replies.