Şimdi Ara

Wordpress Fonksiyonu is_page() ile kullanma

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
3
Cevap
0
Favori
87
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • functions.php icinde WooCommerce eklentisine bağlı sekilde ürünler satin alınırken kullanıcıdan resim girişi istediği bir fonksiyon var fakat bu fonksiyonun sadece '1089' sayfa numaralı urun icin calismasini, digerlerinde resim girişinin olmamasını istiyorum. Kod su sekilde:


    // Display additional product fields (+ jQuery code)

    add_action( 'woocommerce_before_add_to_cart_button', 'display_additional_product_fields', 9 );

    function display_additional_product_fields(){

      ?>

      <p class="form-row validate-required" id="image" >

        <label for="file_field"><?php echo __("Logonuzu Yukleyin") . ' '; ?>

          <br>

          <input type='file' name='image' accept='image/*'>

        </br>

        </label>

      </p>

      <br>

      <p>Ya da</p>

      </br>


      <?php

    }



    // Add custom fields data as the cart item custom data

    add_filter( 'woocommerce_add_cart_item_data', 'add_custom_fields_data_as_custom_cart_item_data', 10, 2 );

    function add_custom_fields_data_as_custom_cart_item_data( $cart_item, $product_id ){

      if( isset($_FILES['image']) && ! empty($_FILES['image']) ) {

        $upload   = wp_upload_bits( $_FILES['image']['name'], null, file_get_contents( $_FILES['image']['tmp_name'] ) );

        $filetype  = wp_check_filetype( basename( $upload['file'] ), null );

        $upload_dir = wp_upload_dir();

            $upl_base_url = is_ssl() ? str_replace('http://', 'https://', $upload_dir['baseurl']) : $upload_dir['baseurl'];

        $base_name  = basename( $upload['file'] );


        $cart_item['file_upload'] = array(

          'guid'   => $upl_base_url .'/'. _wp_relative_upload_path( $upload['file'] ), // Url

          'file_type' => $filetype['type'], // File type

          'file_name' => $base_name, // File name

          'title'  => ucfirst( preg_replace('/\.[^.]+$/', '', $base_name ) ), // Title

        );

        $cart_item['unique_key'] = md5( microtime().rand() ); // Avoid merging items

      }

      return $cart_item;

    }

    /*

    // Display custom cart item data in cart (optional)

    add_filter( 'woocommerce_get_item_data', 'display_custom_item_data', 10, 2 );

    function display_custom_item_data( $cart_item_data, $cart_item ) {

      if ( isset( $cart_item['file_upload']['title'] ) ){

        $cart_item_data[] = array(

          'name' => __( 'Image uploaded', 'woocommerce' ),

          'value' => str_pad($cart_item['file_upload']['title'], 16, 'X', STR_PAD_LEFT) . '…',

        );

      }

      return $cart_item_data;

    }

    */

    // Save Image data as order item meta data

    add_action( 'woocommerce_checkout_create_order_line_item', 'custom_field_update_order_item_meta', 20, 4 );

    function custom_field_update_order_item_meta( $item, $cart_item_key, $values, $order ) {

      if ( isset( $values['file_upload'] ) ){

        $item->update_meta_data( '_img_file', $values['file_upload'] );

      }

    }


    // Admin orders: Display a linked button + the link of the image file

    add_action( 'woocommerce_after_order_itemmeta', 'backend_image_link_after_order_itemmeta', 10, 3 );

    function backend_image_link_after_order_itemmeta( $item_id, $item, $product ) {

      // Only in backend for order line items (avoiding errors)

      if( is_admin() && $item->is_type('line_item') && $file_data = $item->get_meta( '_img_file' ) ){

        echo '<p><a href="'.$file_data['guid'].'" target="_blank" class="button">'.__("Open Image") . '</a></p>'; // Optional

        echo '<p><code>'.$file_data['guid'].'</code></p>'; // Optional

      }

    }


    // Admin new order email: Display a linked button + the link of the image file

    add_action( 'woocommerce_email_after_order_table', 'wc_email_new_order_custom_meta_data', 10, 4);

    function wc_email_new_order_custom_meta_data( $order, $sent_to_admin, $plain_text, $email ){

      // On "new order" email notifications

      if ( 'new_order' === $email->id ) {

        foreach ($order->get_items() as $item ) {

          if ( $file_data = $item->get_meta( '_img_file' ) ) {

            echo '<p>

              <a href="'.$file_data['guid'].'" target="_blank" class="button">'.__("Download Image") . '</a><br>

              <pre><code style="font-size:12px; background-color:#eee; padding:5px;">'.$file_data['guid'].'</code></pre>

            </p><br>';

          }

        }

      }

    }







    Bu kodu if(is_page(1089)){ icine aldigimda 1089 numaralı sayfa dahil hepsinden kalkıyor. Istediğim sekilde kullanabilmek icin tam olarak ne yapmam gerek




    < Bu mesaj bu kişi tarafından değiştirildi aznareps ingo etaicsal -- 5 Nisan 2022; 11:30:43 >







  • display_additional_product_fields fonksiyonunun içinde şu kontrolü yapmayı dener misin:


    Kod

    Yığını:
    if(get_the_id() == 1089) { // kodunuz burada }
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.