PLUGİN'İN ÜRÜNDE AKTİF EDİLDİP EDİLMEDİĞİNİ GÖSTEREN KOD function alg_wc_crdfnd_count_crowdfunding_products( $post_id ) { $args = array( 'post_type' => 'product', 'post_status' => array( 'any', 'trash' ), 'posts_per_page' => 3, 'meta_key' => '_alg_crowdfunding_enabled', 'meta_value' => 'yes', 'post__not_in' => array( $post_id ), 'fields' => 'ids', ); $loop = new WP_Query( $args ); return $loop->found_posts; } } BTC ÖDEME FONKSİYON KODLARI public function _update_order_status( $order, $timeline ) { $prev_status = $order->get_meta( '_coinbase_status' ); $last_update = end( $timeline ); $status = $last_update['status']; if ( $status !== $prev_status ) { $order->update_meta_data( '_coinbase_status', $status ); if ( 'EXPIRED' === $status && 'pending' == $order->get_status() ) { $order->update_status( 'cancelled', __( 'Coinbase payment expired.', 'coinbase' ) ); } elseif ( 'CANCELED' === $status ) { $order->update_status( 'cancelled', __( 'Coinbase payment cancelled.', 'coinbase' ) ); } elseif ( 'UNRESOLVED' === $status ) { if ($last_update['context'] === 'OVERPAID') { $order->update_status( 'processing', __( 'Coinbase payment was successfully processed.', 'coinbase' ) ); $order->payment_complete(); } else { // translators: Coinbase error status for "unresolved" payment. Includes error status. $order->update_status( 'failed', sprintf( __( 'Coinbase payment unresolved, reason: %s.', 'coinbase' ), $last_update['context'] ) ); } } elseif ( 'PENDING' === $status ) { $order->update_status( 'blockchainpending', __( 'Coinbase payment detected, but awaiting blockchain confirmation.', 'coinbase' ) ); } elseif ( 'RESOLVED' === $status ) { // We don't know the resolution, so don't change order status. $order->add_order_note( __( 'Coinbase payment marked as resolved.', 'coinbase' ) ); } elseif ( 'COMPLETED' === $status ) { $order->update_status( 'processing', __( 'Coinbase payment was successfully processed.', 'coinbase' ) ); $order->payment_complete(); } } // Archive if in a resolved state and idle more than timeout. if ( in_array( $status, array( 'EXPIRED', 'COMPLETED', 'RESOLVED' ), true ) && $order->get_date_modified() < $this->timeout ) { self::log( 'Archiving order: ' . $order->get_order_number() ); $order->update_meta_data( '_coinbase_archived', true ); } } HEDEFE KALAN TUTARI SAYAN FONKSIYON function alg_product_crowdfunding_goal_remaining( $atts ) { if ( empty( $atts ) ) { $atts = array(); } $product_id = isset( $atts['product_id'] ) ? $atts['product_id'] : get_the_ID(); if ( ! $product_id ) { return ''; } if ( isset( $atts['type'] ) && 'percent' === $atts['type'] ) { $atts['total_value'] = get_post_meta( $product_id, '_' . 'alg_crowdfunding_goal_sum', true ); } elseif ( ! isset( $atts['type'] ) ) { $atts['type'] = 'price'; } return $this->output_shortcode( floatval( get_post_meta( $product_id, '_' . 'alg_crowdfunding_goal_sum', true ) ) - alg_wc_crdfnd_get_product_orders_data( 'orders_sum', $atts ), $atts ); } ////////////BENİM İSTEDİĞİM/////////////////// 1 - Plugin'in ürün üzerinde aktif edilip edilmediğini kontrol et. 2 - if remaining >=0 ise ödeme alındığında satın alan kişinin ödeme durumunu HEDEFE ULAŞILMASI BEKLENİYOR yap 3 - remaining <=0 olduğu zaman ödeme yapanların ödeme durumunu tamamlandı yap ve dosyaya erişim ver. (ödeme durumu tamamlandı olduğu zaman otomatik olarak dosyaya erişim sağlıyorlar ekstra birşey yapılması gerekmiyor sanırım.