• اطلاعیه ها

    • Saeed Fard

      آگهی استخدام برنامه نویس و پشتیبان وردپرس   13/12/95

      آگهی استخدام برنامه نویس و پشتیبان وردپرس
       
      2 نفر پشتیبان سایت وردپرسی
      ⁃ آشنا به برنامه نویسی قالب و پلاگین وردپرس 
      ⁃ توانایی راه اندازی سایت، قالب و افزونه های وردپرسی 
      ⁃ توانایی برنامه نویسی PHP در حد متوسط 
      ⁃ اطلاعات عمومی وب بالا 
      ⁃ توانایی پاسخگویی نوشتاری به سوالات انگلیسی با گرامر ساده 
      ⁃ آشنایی با HTML/CSS/jQuery 
      ⁃ دارای روحیه کار تیمی، خلاق، مسئولیت‌پذیر و پشتکار بالا ——— ۲ نفر برنامه نویس قالب وردپرس
      ⁃ تسلط به HTML/CSS/jQuery و Bootstrap
      ⁃ توانایی تبدیل HTML به قالب وردپرس
      ⁃ توانایی برنامه نویسی PHP و پلاگین نویسی وردپرس در حد متوسط
      ⁃ آشنایی به اصول سئو 
      ⁃ آشنایی با Git/subversion مزیت محسوب می‌شود.
      ⁃ دارای روحیه کار تیمی، خلاق، مسئولیت‌پذیر و پشتکار بالا ——— ۱ نفر طراح UI/UX
      ⁃ طراحی خلاقه وب سایت
      ⁃ طراحی با جدیدترین استایل‌های طراحی سایت
      ⁃ مسلط به تایپوگرافی انگلیسی و طراحی وب سایت انگلیسی
      ⁃ انتقاد پذیری و قبول بازخوردهای تیم و مشارکت با دیگر اعضاء تیم برای سرعت بخشیدن به فرایند انجام پروژه
      ⁃ آشنایی و درک HTML/CSS/jQuery
      ⁃ دارای روحیه کار تیمی، خلاق، مسئولیت‌پذیر و پشتکار بالا
      ⁃ امکان همکاری به صورت پروژه‌ای و دورکاری در این موقعیت شغلی فراهم است ——— مزایای کار در مجموعه گرودیا
      ⁃ تجربه ناب کار در سطح یک جهانی
      ⁃ محیط کار بسیار دوستانه و آرام
      ⁃ پرداخت های مناسب و سر وقت
      ⁃ کلاس های آموزشی داخلی به جهت بالا بردن دانایی و توانایی همه اعضا   از علاقه‌مندان و نیازمندان تقاضا می‌شود لطفا رزومه کاری خود را با قید موقعیت شغلی به ایمیل info@grodea.co ارسال نمایید.
    • Morteza

      سال 1396 خورشیدی مبارک   29/12/95

      سال 1396 خورشیدی مبارک

maraljoon

عضو سایت
  • تعداد ارسال ها

    62
  • تاریخ عضویت

  • آخرین بازدید

درباره maraljoon

  • درجه
    تازه کار

اطلاعات شخصی

  • جنسیت
    نامشخص
  • آشنایی با وردپرس
    متوسط
  • سطح برنامه نویسی
    متوسط
  • آشنایی با طراحی
    حرفه ای

آخرین بازدید کنندگان نمایه

375 بازدید کننده نمایه
  1. تمام روش ها رو تست کردم ولی مشکل رفع نمیشد. نمیدونم دلیل این مسئله چیه ولی تونستم با این کد که تو فانکشن استفاده کردم درستش کنم. add_filter('user_can_richedit' , create_function('' , 'return true;') , 50);
  2. سلام دوستان.. توی وردپرس یکی از سایتام ویرایشگر دیداری رو نمایش نمیده و کلا رفته روی ویرایشگر بصورت Html یا همون متنی. قبل از اینکه این اتفاق بیفته هیچ بروزرسانی نداشتیم و هیچ افزونه جدیدی هم نصب نکردم. کارهایی هم که برای رفعش انجام دادم اینکه تو بخش شناسه چک کردم و تیک غیرفعال بودن ویرایشگر دیداری فعال نیست. افزونه TinyMCE Advanced و CKEditor for WordPress رو هم تست کردم. توی فایل wp-config.php هم از این کد define('CONCATENATE_SCRIPTS', false استفاده کردم. ولی متاسفانه همچنان مشکل وجود داره. حتی آخرین کاری که کردم وردپرس رو هم آپدیت کردم ولی ...... دوستانی که راهی یرای رفعش سراغ دارن لطفی کنن راهنمایی بدن. اینم عکسی از ویرایشگر دیداری من:
  3. تشکر از شما.. فقط نتونستم از این کد استفاده کنم. ممنون میشم کمکم کنید کجا استفادش کنم.
  4. با بررسی که کردم متوجه شدم وقتی سفارشی برای کاربر ثبت شده باشه تعداد رو نمایش میده و در صورتی که سفارشی نداشته باشه اون خطارو میده. و فرقی هم نمیکنه که نقش کاربری مشترک باشه ، ویرایشگر باشه یا ادمین و .. باشه. چطور میتونم کدی تعریف کنم که در صورتی که سفارشی وجود داشت تعداد رو نمایش بده و در صورتی که سفارشی وجود نداشت مثلا عدد 0 رو نمایش بده.
  5. خطایی هم که میده اینه: Fatal error: Call to a member function get_formatted_order_total() on a non-object in
  6. خیلی ممنونم از شما. این بخش رو تو کدهای ووکامرس پیدا کردم و ازش تو صفحه اصلیم جایی که میخواستم نمایش دادم و سفارشیش کردم. خیلی خوب تعداد سفارش رو نمایش میده. الان یه مشکلی دارم اینکه فقط برای نقش کاربری مشترک نمایش میده ولی برای نقش کاربری های دیگه خطا میده. ممنون میشم راهنماییم کنید. کدی که استفاده میکنم اینه: فکر میکنم خطا بخاطر customer_user باشه. چطور میشه برای نقش کاربری های دیگه هم تعریف بشه. <?php if ( ! defined( 'ABSPATH' ) ) { exit; } $my_orders_columns = apply_filters( 'woocommerce_my_account_my_orders_columns', array( 'order-total' => __( 'Total', 'woocommerce' ), ) ); $customer_orders = get_posts( apply_filters( 'woocommerce_my_account_my_orders_query', array( 'numberposts' => $order_count, 'meta_key' => '_customer_user', 'meta_value' => get_current_user_id(), 'post_type' => wc_get_order_types( 'view-orders' ), 'post_status' => array_keys( wc_get_order_statuses() ) ) ) ); if ( $customer_orders ) : ?> <table class="shop_table shop_table_responsive my_account_orders"> <tbody> <?php foreach ( $customer_orders as $customer_order ) : $order = wc_get_order( $customer_order ); $item_count = $order->get_item_count(); ?> <?php endforeach; ?> </tbody> </table> <?php endif; ?>
  7. سلام (; من تو قسمت سفارش ها تعداد سفارش ها ندیدم. ممنو میشم اگه چنین بخشی رو دیدید شات برام بگیرید. تشکر
  8. سلام.. همونطور که تو عنوان موضوع مشخصه میخوام تو قسمتی از پنل کاربر بهش تعداد سفارشاتشو نمایش بدم. در واقع تو سایتم برای کاربران از طریق ووکامرس سفارش ثبت میکنم. کاربر وارد صفحه my order میشه و میتونه سفارششو پرداخت کنه. حالا دنبال راهی میگردم که وقتی سفارشی ثبت کردم برای کاربر تو قسمتی از پنلش تعداد سفارشات در انتظار پرداختشو نمایش بده. مثلا 1 یا 2 یا .. در حال حاضر افزونه هایی هستند که سفارشات در حال انتظار کل سایت رو نمایش میدن که برای کاربر خاص خودش فقط نمایش نمیده. ممنون میشم راهی بهم پیشنهاد کنید. تشکر
  9. سلام. وقت بخیر دوستان! من یه ساب دامین برای سایتم ساختم و توش یه وردپرس جدید نصب کردم. در واقع این ساب دامین حکم انجمن رو داره. آیا راهی هست کاربرانی که تو سایت اصلی ثبت نام کردن با نام کاربری خودشون تو ساب دامین هم وارد شن و نیاز نباشه که دوباره ثبت نام کنن؟؟ بدون اینکه دیتابیس این دو یکی باشه
  10. سلام دوستان. تو سایتم یه فرم ثبت نام دارم که تو صفحه اول با استفاده از modal بوتسترپ لودش میکنم. ولی مشکلی که دارم اینه که وقتی کاربر فیلد هارو پر میکنه و روی دکمه ثبت نام کلیک میکنه صفحه که رفرش میشه اون مدال بسته میشه. در صورتی که اون فرم ثبت نام اروری داشته باشه یا پیغامی نمایش بده کاربر متوجه اون نمیشه. میخوام از اون کلاس خطا که نمایش داده میشه استفاده کنم که در صورتی که این کلاس نمایش داده شده باشه modal باز بشه. چطوری میتونم با جی کوئری بنویسمش؟؟
  11. سلام دوستان.. به کمک نیاز دارم در مورد کد جی کوئری یه div دارم با کلاس new و یک div با کلاس old.. هر دو بصورت عادی مخفی هستند و با دکمه ای گه گذاشتم برای هر کدوم میشه بازشون کرد. تا اینجا مشکلی نیست. فرض کنید روی دکمه مربوط به div با کلاس new کلیک شده و این div باز شده.. حالا وقتی روی دکمه old کلیک میشه این div هم باز میشه. در این صورت هر دو div باز هستند. میخوام وقتی یکی از این div ها باز هست اون یکی بسته بشه. و وقتی دومی باز بشه قبلی مخفی بشه چطور میتونم با جی کوئری اینو بنویسم؟؟
  12. کدی که قرار دادید برای دکمه از بکگراند به شکل گرادیانت استفاده کرده و چون css3 هست نیازه برای مرورگرهای مختلف استاندار سازی بشه. ولی شما میخواین رنگ ثابت بدین که نیاز به استاندارد سازی نداره. با همین قطعه کد میتونید اینکارو انجام بدین. کد زیر رو بجای تمام اون بکگراندها جایگزین کنید. background:#c51c1c;
  13. این کد رو تست بزنید.. <?php query_posts('showposts=2&category_name=نام دسته'); if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <?php endwhile; endif; wp_reset_query(); ?>
  14. سلام دوستان.. چطور میشه گزینه satellite رو به کد زیر اضافه کرد که تو نقشه گوگل نمایش بده؟؟ (function ($) { var settings; var element; var map; var markers = new Array(); var markerCluster; var clustersOnMap = new Array(); var clusterListener; var methods = { init: function (options) { element = $(this); var defaults = $.extend({ enableGeolocation: false, pixelOffsetX : -145, pixelOffsetY : -200 }); settings = $.extend({}, defaults, options); google.maps.Map.prototype.setCenterWithOffset = function (latlng, offsetX, offsetY) { var map = this; var ov = new google.maps.OverlayView(); ov.onAdd = function () { var proj = this.getProjection(); var aPoint = proj.fromLatLngToContainerPixel(latlng); aPoint.x = aPoint.x + offsetX; aPoint.y = aPoint.y + offsetY; map.setCenter(proj.fromContainerPixelToLatLng(aPoint)); } ov.draw = function () { }; ov.setMap(this); }; google.maps.visualRefresh = true; google.maps.event.addDomListener(window, 'load', loadMap); if (settings.filterForm && $(settings.filterForm).length !== 0) { $(settings.filterForm).submit(function (e) { var form = $(this); var action = $(this).attr('action'); $.ajax({ type : 'GET', url : action, data : form.serialize(), success: function (data) { element.aviators_map('removeMarkers'); element.aviators_map('addMarkers', { locations: eval(data.locations), types : eval(data.types), contents : eval(data.contents) }); } }); e.preventDefault(); }); } if (options.callback) { options.callback(); } return $(this); }, removeMarkers: function () { for (i = 0; i < markers.length; i++) { markers[i].infobox.close(); markers[i].marker.close(); markers[i].setMap(null); } markerCluster.clearMarkers(); $.each(clustersOnMap, function (index, cluster) { cluster.cluster.close(); }); clusterListener.remove(); }, addMarkers: function (options) { markers = new Array(); settings.locations = options.locations; settings.contents = options.contents; settings.types = options.types; renderElements(); } } $.fn.aviators_map = function (method) { // Method calling logic if (methods[method]) { return methods[ method ].apply(this, Array.prototype.slice.call(arguments, 1)); } else if (typeof method === 'object' || !method) { return methods.init.apply(this, arguments); } else { $.error('Method ' + method + ' does not exist on Aviators Map'); } }; function loadMap() { var mapOptions = { zoom : settings.zoom, mapTypeId : google.maps.MapTypeId.ROADMAP, scrollwheel : false, draggable : true, mapTypeControl : false, panControl : false, zoomControl : true, zoomControlOptions: { style : google.maps.ZoomControlStyle.SMALL, position: google.maps.ControlPosition.LEFT_BOTTOM } }; if (settings.enableGeolocation) { if (navigator.geolocation) { browserSupportFlag = true; navigator.geolocation.getCurrentPosition(function (position) { initialLocation = new google.maps.LatLng(position.coords.latitude, position.coords.longitude); map.setCenter(initialLocation); }, function () { mapOptions.center = new google.maps.LatLng(settings.center.latitude, settings.center.longitude); }); } else { browserSupportFlag = false; mapOptions.center = new google.maps.LatLng(settings.center.latitude, settings.center.longitude); } } else { mapOptions.center = new google.maps.LatLng(settings.center.latitude, settings.center.longitude); } map = new google.maps.Map($(element)[0], mapOptions); var dragFlag = false; var start = 0, end = 0; function thisTouchStart(e) { dragFlag = true; start = e.touches[0].pageY; } function thisTouchEnd() { dragFlag = false; } function thisTouchMove(e) { if (!dragFlag) { return } end = e.touches[0].pageY; window.scrollBy(0, ( start - end )); } var el = $('#map')[0]; if (el.addEventListener) { el.addEventListener('touchstart', thisTouchStart, true); el.addEventListener('touchend', thisTouchEnd, true); el.addEventListener('touchmove', thisTouchMove, true); } else if (el.attachEvent){ el.attachEvent('touchstart', thisTouchStart); el.attachEvent('touchend', thisTouchEnd); el.attachEvent('touchmove', thisTouchMove); } google.maps.event.addListener(map, 'zoom_changed', function () { $.each(markers, function (index, marker) { marker.infobox.close(); marker.infobox.isOpen = false; }); }); renderElements(); $('.infobox .close').live('click', function () { $.each(markers, function (index, marker) { marker.infobox.close(); marker.infobox.isOpen = false; }); }); } function isClusterOnMap(clustersOnMap, cluster) { if (cluster === undefined) { return false; } if (clustersOnMap.length == 0) { return false; } var val = false; $.each(clustersOnMap, function (index, cluster_on_map) { if (cluster_on_map.getCenter() == cluster.getCenter()) { val = cluster_on_map; } }); return val; } function addClusterOnMap(cluster) { // Hide all cluster's markers $.each(cluster.getMarkers(), (function () { if (this.marker.isHidden == false) { this.marker.isHidden = true; this.marker.close(); } })); var newCluster = new InfoBox({ markers : cluster.getMarkers(), draggable : true, content : '<div class="clusterer"><div class="clusterer-inner">' + cluster.getMarkers().length + '</div></div>', disableAutoPan : true, pixelOffset : new google.maps.Size(-21, -21), position : cluster.getCenter(), closeBoxURL : "", isHidden : false, enableEventPropagation: true, pane : "mapPane" }); cluster.cluster = newCluster; cluster.markers = cluster.getMarkers(); cluster.cluster.open(map, cluster.marker); clustersOnMap.push(cluster); } function renderElements() { $.each(settings.locations, function (index, location) { var marker = new google.maps.Marker({ position: new google.maps.LatLng(location[0], location[1]), map : map, icon : settings.transparentMarkerImage }); marker.infobox = new InfoBox({ content : settings.contents[index], disableAutoPan : false, maxWidth : 0, pixelOffset : new google.maps.Size(settings.pixelOffsetX, settings.pixelOffsetY), zIndex : null, closeBoxURL : "", infoBoxClearance : new google.maps.Size(1, 1), position : new google.maps.LatLng(location[0], location[1]), isHidden : false, pane : "floatPane", enableEventPropagation: false }); marker.infobox.isOpen = false; marker.marker = new InfoBox({ draggable : true, content : '<div class="marker ' + settings.types[index] + '"><div class="marker-inner"></div></div>', disableAutoPan : true, pixelOffset : new google.maps.Size(-21, -58), position : new google.maps.LatLng(location[0], location[1]), closeBoxURL : "", isHidden : false, pane : "floatPane", enableEventPropagation: true }); marker.marker.isHidden = false; marker.marker.open(map, marker); markers.push(marker); google.maps.event.addListener(marker, 'click', function (e) { var curMarker = this; $.each(markers, function (index, marker) { // if marker is not the clicked marker, close the marker if (marker !== curMarker) { marker.infobox.close(); marker.infobox.isOpen = false; } }); if (curMarker.infobox.isOpen === false) { curMarker.infobox.open(map, this); curMarker.infobox.isOpen = true; map.setCenterWithOffset(curMarker.getPosition(), 100, -120); } else { curMarker.infobox.close(); curMarker.infobox.isOpen = false; } }); }); markerCluster = new MarkerClusterer(map, markers, { gridSize: 40, styles: [ { height : 42, url : settings.transparentClusterImage, width : 42, textColor: 'transparent' } ] }); clustersOnMap = new Array(); clusterListener = google.maps.event.addListener(markerCluster, 'clusteringend', function (clusterer) { var availableClusters = clusterer.getClusters(); var activeClusters = new Array(); $.each(availableClusters, function (index, cluster) { if (cluster.getMarkers().length > 1) { activeClusters.push(cluster); } }); $.each(availableClusters, function (index, cluster) { if (cluster.getMarkers().length > 1) { var val = isClusterOnMap(clustersOnMap, cluster); if (val !== false) { val.cluster.setContent('<div class="clusterer"><div class="clusterer-inner">' + cluster.getMarkers().length + '</div></div>'); val.markers = cluster.getMarkers(); $.each(cluster.getMarkers(), (function (index, marker) { if (marker.marker.isHidden == false) { marker.marker.isHidden = true; marker.marker.close(); } })); } else { addClusterOnMap(cluster); } } else { // Show all markers without the cluster $.each(cluster.getMarkers(), function (index, marker) { if (marker.marker.isHidden == true) { marker.marker.open(map, this); marker.marker.isHidden = false; } }); // Remove old cluster $.each(clustersOnMap, function (index, cluster_on_map) { if (cluster !== undefined && cluster_on_map !== undefined) { if (cluster_on_map.getCenter() == cluster.getCenter()) { // Show all cluster's markers/ cluster_on_map.cluster.close(); clustersOnMap.splice(index, 1); } } }); } }); var newClustersOnMap = new Array(); $.each(clustersOnMap, function (index, clusterOnMap) { var remove = true; $.each(availableClusters, function (index2, availableCluster) { if (availableCluster.getCenter() == clusterOnMap.getCenter()) { remove = false; } }); if (!remove) { newClustersOnMap.push(clusterOnMap); } else { clusterOnMap.cluster.close(); } }); clustersOnMap = newClustersOnMap; }); } })(jQuery);
  15. بله امکانش هست. آدرس آنلاین سایت بدید چک کنم.