" . __( 'The Affiliates Jigoshop Integration Light plugin requires an Affiliates plugin to be activated: Visit the Affiliates plugin page', AFF_JIGOSHOP_LIGHT_PLUGIN_DOMAIN ) . ""; } if ( !$jigoshop_is_active ) { self::$admin_messages[] = "
" . __( 'The Affiliates Jigoshop Integration Light plugin requires the Jigoshop plugin to be activated.', AFF_JIGOSHOP_LIGHT_PLUGIN_DOMAIN ) . "
"; } if ( $affiliates_jigoshop_is_active ) { self::$admin_messages[] = "
" . __( 'You do not need to use the Affiliates Jigoshop Integration Light plugin because you are already using the advanced Affiliates Jigoshop Integration plugin. Please deactivate the Affiliates Jigoshop Integration Light plugin now.', AFF_JIGOSHOP_LIGHT_PLUGIN_DOMAIN ) . "
"; } if ( !$affiliates_is_active || !$jigoshop_is_active || $affiliates_jigoshop_is_active ) { if ( $disable ) { include_once( ABSPATH . 'wp-admin/includes/plugin.php' ); deactivate_plugins( array( __FILE__ ) ); } $verified = false; } if ( $verified ) { add_action ( 'jigoshop_new_order', array( __CLASS__, 'jigoshop_new_order' ) ); $options = get_option( self::PLUGIN_OPTIONS , array() ); add_filter( 'post_type_link', array( __CLASS__, 'post_type_link' ), 10, 4 ); add_action( 'affiliates_admin_menu', array( __CLASS__, 'affiliates_admin_menu' ) ); add_filter( 'affiliates_footer', array( __CLASS__, 'affiliates_footer' ) ); } } /** * Adds a submenu item to the Affiliates menu for the Jigoshop integration options. */ public static function affiliates_admin_menu() { $page = add_submenu_page( 'affiliates-admin', __( 'Affiliates Jigoshop Integration Light', AFF_JIGOSHOP_LIGHT_PLUGIN_DOMAIN ), __( 'Jigoshop Integration Light', AFF_JIGOSHOP_LIGHT_PLUGIN_DOMAIN ), AFFILIATES_ADMINISTER_OPTIONS, 'affiliates-admin-jigoshop-light', array( __CLASS__, 'affiliates_admin_jigoshop_light' ) ); $pages[] = $page; add_action( 'admin_print_styles-' . $page, 'affiliates_admin_print_styles' ); add_action( 'admin_print_scripts-' . $page, 'affiliates_admin_print_scripts' ); } /** * Affiliates Jigoshop Integration Light : admin section. */ public static function affiliates_admin_jigoshop_light() { $output = ''; if ( !current_user_can( AFFILIATES_ADMINISTER_OPTIONS ) ) { wp_die( __( 'Access denied.', AFF_JIGOSHOP_LIGHT_PLUGIN_DOMAIN ) ); } $options = get_option( self::PLUGIN_OPTIONS , array() ); if ( isset( $_POST['submit'] ) ) { if ( wp_verify_nonce( $_POST[self::NONCE], self::SET_ADMIN_OPTIONS ) ) { $options[self::REFERRAL_RATE] = floatval( $_POST[self::REFERRAL_RATE] ); if ( $options[self::REFERRAL_RATE] > 1.0 ) { $options[self::REFERRAL_RATE] = 1.0; } else if ( $options[self::REFERRAL_RATE] < 0 ) { $options[self::REFERRAL_RATE] = 0.0; } $options[self::USAGE_STATS] = !empty( $_POST[self::USAGE_STATS] ); } update_option( self::PLUGIN_OPTIONS, $options ); } $referral_rate = isset( $options[self::REFERRAL_RATE] ) ? $options[self::REFERRAL_RATE] : self::REFERRAL_RATE_DEFAULT; $usage_stats = isset( $options[self::USAGE_STATS] ) ? $options[self::USAGE_STATS] : self::USAGE_STATS_DEFAULT; echo '
' . '

' . __( 'Affiliates Jigoshop Integration Light', AFF_JIGOSHOP_LIGHT_PLUGIN_DOMAIN ) . '

' . '
'; $output .= '

'; $output .= __( 'You can support the development of the Affiliates plugin and get additional features with Affiliats Pro or Affiliates Enterprise.', AFF_JIGOSHOP_LIGHT_PLUGIN_DOMAIN ); $output .= '

'; $output .= '
'; $output .= '
'; $output .= '
'; $output .= '

' . __( 'Referral Rate', AFF_JIGOSHOP_LIGHT_PLUGIN_DOMAIN ) . '

'; $output .= '

'; $output .= ''; $output .= ' '; $output .= ''; $output .= '

'; $output .= '

'; $output .= __( 'The referral rate determines the referral amount based on the net sale made.', AFF_JIGOSHOP_LIGHT_PLUGIN_DOMAIN ); $output .= '

'; $output .= '

'; $output .= __( 'Example: Set the referral rate to 0.1 if you want your affiliates to get a 10% commission on each sale.', AFF_JIGOSHOP_LIGHT_PLUGIN_DOMAIN ); $output .= '

'; $output .= '

' . __( 'Usage stats', AFF_JIGOSHOP_LIGHT_PLUGIN_DOMAIN ) . '

'; $output .= '

'; $output .= ''; $output .= ' '; $output .= ''; $output .= '
'; $output .= '' . __( 'This will allow the plugin to help in computing how many installations are actually using it. No personal or site data is transmitted, this simply embeds an icon on the bottom of the Affiliates admin pages, so that the number of visits to these can be counted. This is useful to help prioritize development.', AFF_JIGOSHOP_LIGHT_PLUGIN_DOMAIN ) . ''; $output .= '

'; $output .= '

'; $output .= wp_nonce_field( self::SET_ADMIN_OPTIONS, self::NONCE, true, false ); $output .= ''; $output .= '

'; $output .= '
'; $output .= '
'; $output .= '
'; echo $output; affiliates_footer(); } /** * Add a notice to the footer that the integration is active. * @param string $footer */ public static function affiliates_footer( $footer ) { $options = get_option( self::PLUGIN_OPTIONS , array() ); $usage_stats = isset( $options[self::USAGE_STATS] ) ? $options[self::USAGE_STATS] : self::USAGE_STATS_DEFAULT; return '
' . '

' . ( $usage_stats ? "Logo" : '' ) . __( "Powered by Affiliates Jigoshop Integration Light.", AFF_JIGOSHOP_LIGHT_PLUGIN_DOMAIN ) . '

' . '
' . $footer; } /** * Returns an edit link for shop_order post types. * * @param string $post_link * @param array $post * @param boolean $leavename * @param boolean $sample */ public static function post_type_link( $post_link, $post, $leavename, $sample ) { $link = $post_link; if ( // right post type isset( $post->post_type) && ( $post->post_type == self::SHOP_ORDER_POST_TYPE ) && // admin page is_admin() && // right admin page isset( $_REQUEST['page'] ) && in_array( $_REQUEST['page'], self::$shop_order_link_modify_pages ) && // check link ( preg_match( "/" . self::SHOP_ORDER_POST_TYPE . "=([^&]*)/", $post_link, $matches ) === 1 ) && isset( $matches[1] ) && ( $matches[1] === $post->post_name ) ) { $link = admin_url( 'post.php?post=' . $post->ID . '&action=edit' ); } return $link; } /** * Record a referral when a new order has been placed. * @param int $order_id the post id of the order */ public static function jigoshop_new_order( $order_id ) { $order_data = get_post_meta( $order_id, 'order_data', true ); $order_key = get_post_meta( $order_id, 'order_key', true ); $order = new jigoshop_order( $order_id ); $total = floatval( $order->order_subtotal ); if ( $order->order_discount ) { $total = $total - floatval( $order->order_discount ); } if ( $total < 0 ) { $total = 0; } $currency = get_option( 'jigoshop_currency' ); $order_link = ''; $order_link .= sprintf( __( 'Order #%s', AFF_JIGOSHOP_LIGHT_PLUGIN_DOMAIN ), $order_id ); $order_link .= ""; $data = array( 'order_id' => array( 'title' => 'Order #', 'domain' => AFF_JIGOSHOP_LIGHT_PLUGIN_DOMAIN, 'value' => esc_sql( $order_id ) ), 'order_total' => array( 'title' => 'Total', 'domain' => AFF_JIGOSHOP_LIGHT_PLUGIN_DOMAIN, 'value' => esc_sql( $total ) ), 'order_currency' => array( 'title' => 'Currency', 'domain' => AFF_JIGOSHOP_LIGHT_PLUGIN_DOMAIN, 'value' => esc_sql( $currency ) ), 'order_link' => array( 'title' => 'Order', 'domain' => AFF_JIGOSHOP_LIGHT_PLUGIN_DOMAIN, 'value' => esc_sql( $order_link ) ) ); $options = get_option( self::PLUGIN_OPTIONS , array() ); $referral_rate = isset( $options[self::REFERRAL_RATE] ) ? $options[self::REFERRAL_RATE] : self::REFERRAL_RATE_DEFAULT; $amount = round( floatval( $referral_rate ) * floatval( $total ), AFFILIATES_REFERRAL_AMOUNT_DECIMALS ); $description = sprintf( 'Order #%s', $order_id ); affiliates_suggest_referral( $order_id, $description, $data, $amount, $currency ); } } Affiliates_Jigoshop_Light_Integration::init();